有和没有时间部分的日期之间的差异

时间:2013-09-17 16:48:42

标签: javascript datetime

假设我有两个变量:一个包含日期字符串(没有时间),另一个包含相同的日期字符串,但时间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吗?

谢谢

2 个答案:

答案 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时区和你的当前时间 时区。