Javascript日期使用UTC时间来纠正GMT的时间

时间:2013-04-14 12:24:47

标签: javascript date time countdown

我有一个javascript日期,如下面的那个,即“现在”加上说20分钟:

var end = new Date('04/14/2013 14:00');

此次倒计时脚本中使用的是哪一种(交付ETA)。

然而,这取决于客户机器在倒计时结束时计算出来,这可能不是GMT或GMT +1夏令时。

我在这里查看了UTC方法http://www.w3schools.com/jsref/jsref_utc.asp,但坦率地说迷路了。

所以我的问题是:

如何调整变量结束以说明GMT与客户端计算机上的本地设置之间可能存在的时间差异,以便它可以信任?

注意:“信任”在这里是一个强有力的词,也许“更可能是准确的”可能更好:)这也需要纯粹的JS没有jQuery。

马特

2 个答案:

答案 0 :(得分:1)

  

我查看了UTC方法,但坦率地迷路了。

不,使用Date.UTC function很好,可以走了。在你的情况下,它将是

var end = new Date(Date.UTC(2013, 3, 14, 14, 0)); // notice months are zero-based

当然你可以直接使用milli seconds since epoch,特别是如果你动态生成日期值:

var end = new Date(1365948000000);

答案 1 :(得分:0)

这可能没有直接回答问题,也许我错过了一些东西,但看起来你的问题总是过于复杂 - 如果你使用日期作为倒数计时器的一部分那么你必须总是知道什么偏移量(倒计时)是在任何特定时刻。

由于Date如果您没有将任何参数传递给构造函数,则始终返回本地时间,为什么不仅根据您的偏移确定“end”日期客户端。例如

var offset = 1000*60*20; // 20 minutes (in milliseconds)
var end = new Date( new Date().getTime() + offset );

这样您就不必担心本地时区甚至DST。