用javascript / php静态倒计时,怎么样?

时间:2012-05-10 20:30:17

标签: php javascript jquery

var austDay = new Date("May 18, 2012 00:00:00");
            $('#countdown').countdown({until: austDay});

我得到了什么。我希望将其设为静态,我的意思是它在所有时区显示相同的倒计时。因此,无论您在电脑上更改时区或日期,都不应影响倒计时,而且应该还有8个小时。

也许这是不可能的,因为Javascript是客户端?

我该怎么办?我真的希望它倒数倒数而不是你需要刷新。也许我可以使用PHP的一些帮助?

倒计时应该是相同的,例如剩下4小时,它也应该在纽约和亚洲显示..

2 个答案:

答案 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);

你可能想要在几秒或更短的时间内完成,而不是几小时。为了简单起见,我在这里用了几个小时。