var austDay = new Date("May 18, 2012 00:00:00");
$('#countdown').countdown({until: austDay});
我得到了什么。我希望将其设为静态,我的意思是它在所有时区显示相同的倒计时。因此,无论您在电脑上更改时区或日期,都不应影响倒计时,而且应该还有8个小时。
也许这是不可能的,因为Javascript是客户端?
我该怎么办?我真的希望它倒数倒数而不是你需要刷新。也许我可以使用PHP的一些帮助?
倒计时应该是相同的,例如剩下4小时,它也应该在纽约和亚洲显示..
答案 0 :(得分:2)
您可以使用PHP将服务器时间传递给客户端,如此。
var time = new Date(<?php echo time()*1000; ?>);
答案 1 :(得分:0)
var austDay = new Date("May 18, 2012 00:00:00");
这将在用户的本地时区中创建一个日期和时间显示的日期对象。要创建UTC日期,您可以执行以下操作:
var austDay = new Date(Date.UTC(2012, 4, 18));
...其中4是从零开始的月份数(2012年和18年是年和日,显然)。
如果您之后需要显示日期,请使用“UTC”函数代替非UTC对应函数,例如:
console.log(austDay.toUTCString()) // "Fri, 18 May 2012 00:00:00 GMT"
另一个问题是用户可以改变他们的时钟。为了给他们“8小时左右”这样的东西,并且绝对确定,你必须将服务器时间与客户的时间进行比较,并根据该时间设置日期。
例如,如果服务器知道事情发生在明天中午,而且是晚上9点,则倒计时结束时间为15小时。您可以告诉客户在倒计时准备好之前还剩多少时间,而不是将它们传递给绝对时间。
var austDay = new Date();
var hoursLeft = <?php echo $something ?>;
austDay.addHours(hoursLeft);
你可能想要在几秒或更短的时间内完成,而不是几小时。为了简单起见,我在这里用了几个小时。