我最近在产品页面中使用倒计时。我用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);
答案 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函数并使用它而不是您拥有的日期。这应该可以满足您的需求。