首页 > 解决方案 > 如果我只指定一个日期,Javascript new Date 使用什么默认时间?

问题描述

new Date((new Date('1900-01-01')).getTime())
--> Sun Dec 31 1899 23:23:15 GMT-0036(西欧标准时间)

但我希望上述内容与此相同:
new Date((new Date('1900-01-01T00:00')).getTime())
-> Mon Jan 01 1900 00:00:00 GMT-0036(西欧标准时间)

这适用于 ~1912-01-01 之后的所有日期:
new Date((new Date('1912-01-01')).getTime())
-> Mon Jan 01 1912 00:00:00 GMT+0000(西欧标准时间)

更奇怪的是:
new Date((new Date('1911-11-3')).getTime())
--> 1911 年 11 月 3 日星期五 00:00:00 GMT-0036(西欧标准时间)但是
new Date((new Date('1911-11-03')).getTime())
--> 1911 年 11 月 2 日星期四 23:23:15 GMT-0036(西欧标准时间)

我知道 Moment.js 存在是有充分理由的,但是为什么在日期中有和没有前导零的时间上有差异?

(new Date('1911-11-03')).getTime()
-1835481600000
(new Date('1911-11-3')).getTime()
-1835479395000

标签: javascriptdatedatetime

解决方案


推荐阅读