静态倒计时与javascript/php,如何

Static countdown with javascript/php, how?

本文关键字:php 如何 javascript 倒计时 静态      更新时间:2023-09-26
var austDay = new Date("May 18, 2012 00:00:00");
            $('#countdown').countdown({until: austDay});

是我得到的。我希望使这个静态,我的意思是它在所有时区中显示相同的倒计时。因此,无论您是否在PC上更改时区或日期,都不会影响倒计时,并且仍应剩余8小时。

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

我能做什么?我真的希望它倒计时,而不是你需要刷新。也许我可以从 PHP 获得一些帮助?

倒计时应该相同,例如还剩 4 小时,它也应该显示在纽约和亚洲。

你可以使用 PHP 像这样将服务器时间传递给客户端。

var time = new Date(<?php echo time()*1000; ?>);
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:00,那么倒计时将在 15 小时后结束。您可以告诉客户距离倒计时准备就绪还剩多少时间,而不是向他们传递绝对时间。

var austDay = new Date();
var hoursLeft = <?php echo $something ?>;
austDay.addHours(hoursLeft);

您可能希望在几秒钟或更短的时间内完成它,而不是几个小时,为了简单起见,我在这里使用了几个小时。