MongoDB存储时刻范例数据时,都是先转换为UTC时刻,然后存储到数据库中,当我们掏出存储的时刻时,就会涌现时差的题目。比方我们用的北京时刻,读取到的数值就会看到比当前时刻少了8个小时,难道说我们在每次读取的时刻都要零丁处置惩罚一下时刻吗,这就比较贫苦。实在,我们能够在存储的时刻举行响应的处置惩罚,只需运用getTimezoneOffset()和toISOString()函数。
getTimezoneOffset函数:返回此区域的时差(当地时刻与GMT格林威治规范时刻的区域时差),单元为分钟。
<script>
// 我们是东八区
var d = new Date();
var tz = d.getTimezoneOffset();
console.log(tz); // -480
</script>
toISOString()函数:运用ISO规范将 Date 对象转换为字符串。
该规范称为 ISO-8601 ,花样为: YYYY-MM-DDTHH:mm:ss.sssZ。
封装时刻转换函数
localDate(v) {
const d = new Date(v || Date.now());
d.setMinutes(d.getMinutes() - d.getTimezoneOffset());
return d.toISOString();
},
我们在存储时刻的时刻挪用localDate()这个函数就能够了,不管你处在哪一个时区效果显现都和当地时刻一样。