【问题标题】:Javascript Date using UTC time to correct time to GMT使用 UTC 时间将时间更正为 GMT 的 Javascript 日期
【发布时间】:2013-04-14 12:24:47
【问题描述】:

我有一个 JavaScript 日期,如下所示,即“现在”加上 20 分钟:

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

目前在倒计时脚本中使用的内容(交付 ETA)。

但是,这依赖于客户端计算机来计算应该在什么时候结束倒计时,这可能不是 GMT 或 GMT +1 的夏令时。

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

所以我的问题是:

我如何调整变量 end 以解决 GMT 与其在客户端计算机上的本地设置之间可能存在的时差,从而使其可以信任?

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

马特

【问题讨论】:

  • jQuery 无论如何都没有提供日期 :-)

标签: javascript date time countdown


【解决方案1】:

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

不,使用Date.UTC function 很好,而且是可行的方法。在你的情况下,它会是

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

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

var end = new Date(1365948000000);

【讨论】:

    【解决方案2】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2012-10-07
      • 1970-01-01
      • 1970-01-01
      • 2018-07-28
      • 2021-03-25
      • 2015-06-14
      • 2011-08-29
      • 2014-06-13
      • 1970-01-01
      相关资源
      最近更新 更多