假设我有两个变量:一个包含日期字符串(没有时间),另一个包含相同的日期字符串,但时间00:00:00,如下所示:
var date1 = '2013-10-23';
var date2 = '2013-10-23 00:00:00';
var date1_time = new Date(date1).getTime();
var date2_time = new Date(date2).getTime()
console.debug('Date 1 time: ' + date1_time + "\n" + 'Date 2 time: ' + date2_time);
控制台中的结果是:
Date 1 time: 1382486400000
Date 2 time: 1382500800000
为什么这两个不相同?由于我没有花时间,因此date1的时间部分不应该默认为00:00:00
吗?
谢谢
答案 0 :(得分:1)
我刚刚在chrome上测试过,发现了
第一个为您提供00:00:00 UTC的时间戳
第二个为您提供当前时区的时间戳。
因此,如果你减去它们,你会看到+ -your timezone:
var date1_time = new Date(date1).getTime();
var date2_time = new Date(date2).getTime();
console.log((date2_time-date1_time)/1000/60/60); //will print the timezone difference.
答案 1 :(得分:0)
您可以准确了解第一个变量正在考虑的时间。
var timestamp = 1382486400000;
var date = new Date();
date = new date(timestamp + date.getTimezoneOffset() * 60000)
alert(date);
这一切都是因为默认的UTC时区和你的当前时间 时区。