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());