为什么Javascript Date.now()返回错误的日期?

时间:2015-06-10 18:06:18

标签: javascript date

在Firefox Javascript控制台中测试时,

Date.now();

返回1433959098918。

Google搜索“1433959098918 ms in years”返回45。04404年,增加到1970年1月1日00:00:00是2015年5月8日。我也试过了

(new Date()).getTime();

返回相同的结果。我错误地计算了一些东西,如果没有,为什么Date.now()会返回这个结果?

编辑:没关系,我的计算不正确。我假设日期是0,而不是。

2 个答案:

答案 0 :(得分:8)

因为js时间戳不是unix时间戳,所以unix时间戳以秒为单位,而不是毫秒,你需要除以1000,你可以删除最后3位数

1433959098918 - > 1433959098

如果你不知道,这种不同的格式有很多问题。 :)

答案 1 :(得分:2)

现在:

(new Date()).getTime()

给我:

1433959813432 (or 45,4 years)

哪个是对的。你在计算中犯了一个错误:

1433959813432 [ms] / 60 [s/m] / 60 [m/h] / 24 [h/d] / 365.25 [d/y]
= 45.439444489821786194133901183867 [y]

每年需要365.25天才能包括傻瓜。

  

它并不完美,但它是一个很好的近似值。

增加1970年,你得到:

2015.4394444898217861941339011839

2015年加上其余部分,即:

0.4394444898217861941339011839 [y] * 365.25 [d/y]

或者:

160.50709990740740740740740740742 days

现在,扣除1月31日,2月28日,3月31日,4月30日和5月31日,你得到:

9.5070999074074074074074074074218 days into june

2015年6月第10天(从0开始计算)。

其余的是:

0.5070999074074074074074074074218 * 24 hours
= 12.170397777777777777777777778123 hours

加上我的时区和夏令时,它就在现场!