将jQuery Countdown插件与服务器时间相匹配

时间:2014-04-04 13:32:32

标签: javascript php jquery countdown

我最近在产品页面中使用倒计时。我用Jquery Countdown这真的很棒。我想将计时器与服务器时间同步,因为如果用户更改时区,则将小时添加到计时器,这就是主要问题。

在插件的网站中(在名为时区的标签中)有一些提示,但是没有真正了解如何将脚本组合在一起,而不是后端人员。

这是我的代码的一部分:http://jsfiddle.net/zG9Ta/4/

请检查我的js的底部,因为我在JS选项卡中包含了插件(并且它必须位于顶部)。

如何将我的前端代码与服务器时间相结合?

提前致谢。

主要JS:

function call(){
      $('.countdownclock').countdown({until: new Date(2014, 4-1,10,09,00), timezone:+3, format: 'HMS',padZeroes: true});

   }

setTimeout(call,500);

1 个答案:

答案 0 :(得分:0)

JavaScript运行客户端,因此为了让JavaScript Date()向客户端显示服务器时间,服务器端(假设控制器或操作类)的时间,您需要将服务器的时区偏移量设置为一个int并将其作为参数传递给页面。然后,在您的JS日期中,创建一个UTC日期,然后通过偏移量增加该日期。

在你的控制器/动作中:

Calendar cal = Calendar.getInstance();
TimeZone tz = cal.getTimeZone();
int tzOffset = tz.getOffset(cal.getTimeInMillis());

在你的JS中:

var wallTimeDate = new Date(); 
var utcDate = new Date(wallTimeDate.getUTCFullYear(), wallTimeDate.getUTCMonth(), wallTimeDate.getUTCDate(),  wallTimeDate.getUTCHours(), wallTimeDate.getUTCMinutes(), wallTimeDate.getUTCSeconds());
var serverDate = new Date(now_utc.getTime() + tzOffset);

您可以在W3C JS UTC

查看JS Date的所有方法

获得日期后,将其传递给JQuery函数并使用它而不是您拥有的日期。这应该可以满足您的需求。