【问题标题】: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>
无论您的访问者来自哪个时区,它总是相同的