Javascript与日期

Javascript与日期,javascript,datepicker,Javascript,Datepicker,我有个有趣的问题,找不到解决办法。看看这个: var d1 = new Date("07 31 2014"); document.write(d1); document.write('<br />'); var d2 = new Date(1406746800 * 1000); document.write(d2); 然后在我改变时区后,我得到以下结果: Thu Jul 31 2014 00:00:00 GMT+0500 (UZT) Thu Jul 31 2014 00:00:00

我有个有趣的问题,找不到解决办法。看看这个:

var d1 = new Date("07 31 2014");
document.write(d1);
document.write('<br />');
var d2 = new Date(1406746800 * 1000);
document.write(d2);
然后在我改变时区后,我得到以下结果:

Thu Jul 31 2014 00:00:00 GMT+0500 (UZT)
Thu Jul 31 2014 00:00:00 GMT+0500 (UZT)
Thu Jul 31 2014 00:00:00 GMT-0800 (AKDT)
Wed Jul 30 2014 11:00:00 GMT-0800 (AKDT)

如你所见,第二个结果是7月30日,但第一个结果是7月31日。我想它们必须都等于7月31日。我知道这个问题取决于时区,但有解决办法吗

因此构造函数参数是:

表示从1开始的毫秒数的整数值 1970年1月00:00:00 UTC

给定整数值,表示(对我来说,用BST表示):

那是

Wed Jul 30 2014 19:00:00 UTC
你的时区是GMT-8,所以上面的-8给出:

Wed Jul 30 2014 11:00:00 GMT-0800 AKDT
日期字符串构造函数在本地时区中构造日期。通过执行以下操作,您可以看到值应该是什么:

new Date("07 31 2014").getTime() / 1000

它返回的是
1406761200
,而不是
1406746800

你好-我猜是星期四31:00,但在那个特定的时区+0500。因此,如果您使用-0800计算另一个日期的时间戳,您应该在13小时之前(从24:00-13=11:00)获得该日期。因此,如果您使用特定ZimeZone的时间戳计算,您可能会使用UTC日期获得不同的值?
new Date("07 31 2014").getTime() / 1000