gpt4 book ai didi

javascript - Date.now() 返回以微秒为单位的值,而不是以毫秒为单位的值

转载 作者:行者123 更新时间:2023-11-28 14:20:06 25 4
gpt4 key购买 nike

Date.now(),根据文档应该返回 Unix 时间戳或纪元时间,即自此以来已经过去的毫秒数1970 年 1 月 1 日。

根据本网站(或任何其他有效的计算方法),当前的 unix 时间戳约为 1554637184。请注意,该值有 10 位数字。该值实际上以毫秒为单位。

但是,在所有三种浏览器(Chrome 73、Firefox 66.0.2 和 Edge 17.17134)中,Date.now() 返回的值都是 1554637694364,据观察,该值是 13位数,因此,我推断它是自 1970 年 1 月 1 日以来经过的微秒数。

发生什么事了?

我在使用它多年后才意识到这一点,因为刚才我正在调试一些代码,这些代码进行了类似的检查,因此失败了:

let endTime = ...; // a time later than now expressed as a unix timestamp
let now = Date.now();

if (endTime <= now) {
// And it always came here, and that led me to this discovery
...
}

最佳答案

当前纪元时间(又名 unix 时间戳),1554637856 是自 1970 年 1 月 1 日以来的数,而不是毫秒。

Date.now() 返回以毫秒为单位的纪元时间,因此您需要秒:

if (endTime <= now / 1000) {
...

关于javascript - Date.now() 返回以微秒为单位的值,而不是以毫秒为单位的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55558695/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com