【问题标题】:How do I set a countdown's target time to be in a set time zone?如何将倒计时的目标时间设置在设定的时区?
【发布时间】:2014-12-12 20:46:48
【问题描述】:

我正在制作一个倒计时网页,以对一款游戏进行重大更新,这将是一件大事等等。该倒计时目前正在使用此代码获取计算机时间、目标结束时间和时差:

var christmas = new Date("December 25, 2014 00:01:00");
var now = new Date();
var timeDiff = christmas.getTime() - now.getTime();

我需要一种方法来让christmas 目标时间处于同一时区,无论您计算机的时区设置为什么。

【问题讨论】:

    标签: javascript date time countdown


    【解决方案1】:

    使用 UTC:

    var xmas = new Date('2014-12-25T00:00:01.0000000'); 
    var utc = new Date(
                  xmas.getUTCFullYear(),
                  xmas.getUTCMonth(),
                  xmas.getUTCDate(),
                  xmas.getUTCHours(),
                  xmas.getUTCMinutes(),
                  xmas.getUTCSeconds()
              );
    
    alert('local diff: ' + (xmas.getTime() - new Date().getTime()));
    alert('utc diff: ' + (utc.getTime() - new Date().getTime()));

    【讨论】:

      【解决方案2】:

      首先(开个玩笑)圣诞节时间是“2014 年 12 月 25 日 00:00:01”,如果您的页面是动态提供的(如 PHP),请将服务器端日期放在 html 源中,如下所示:

      <script>
      var christmas = new Date("December 25, 2014 00:00:01");
      var currentServerDate= <?= time() ?>
      var dateDiff = christmas.getTime() - serverDate.getTime();
      </script>
      

      无论您的访问者来自哪个时区,它总是相同的

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多