var date = new Date('2013-04-15');
console.log(date);
输出:
Sun Apr 14 2013 20:00:00 GMT-0400 (EDT)
即 -1 天,为什么 Date 会有这种行为?
var date = new Date('2013-04-15');
console.log(date);
输出:
Sun Apr 14 2013 20:00:00 GMT-0400 (EDT)
即 -1 天,为什么 Date 会有这种行为?
这两个时间戳代表相同的时间:
Sun Apr 14 2013 20:00:00 GMT-0400 (EDT)
Mon Apr 15 2013 00:00:00 UTC
你得到第一个,但期待第二个。日期构造函数似乎需要 UTC 时间。
如果你这样做:
var date = new Date('2013-04-15 EDT');
console.log(date);
然后你可能会得到预期的结果
编辑: 这种行为很奇怪。此代码按您的预期工作:
var date = new Date('Apr 15 2013');
console.log(date);
Mon Apr 15 2013 00:00:00 GMT+XYZ
您需要指定时区才能获得所需的输出。
这里有一个例子:Javascript 日期对象总是休息一天?
因为new Date()
使用的是 UTC 时间,所以toString()
使用您当前的时区。
如果要打印 UTC 时间,则应使用
var date = new Date('2013-04-15');
console.log(date.toUTCString());