目前我们有这个代码,除了它需要使用指定的时区而不是用户的时区外,它有效:
$('#countdown').countdown('<?php echo $date_end?>').on('update.countdown', function(event) {
var format = '%-S second%!S';
if (event.offset.years > 0 || event.offset.weeks > 0 || event.offset.days > 0 || event.offset.hours > 0 || event.offset.minutes > 0) {
if(event.offset.minutes > 0) {
format = '%-M minute%!M ' + format;
}
if(event.offset.hours > 0) {
format = '%-H hour%!H ' + format;
}
if(event.offset.days > 0) {
format = '%-d day%!d ' + format;
}
if(event.offset.weeks > 0) {
format = '%-w week%!w ' + format;
}
}
$(this).html(event.strftime(format));
}).on('finish.countdown', function(event) {
$(this).html('Finished');
});
我已经看过几个添加时区的例子,但没有一个像我们一样使用jquery倒计时插件。
关于如何将+10添加为当前时区的任何想法?所以它使用的是而不是用户的时区?
感谢。
答案 0 :(得分:5)
我猜您正在使用https://github.com/hilios/jQuery.countdown,因为它没有时区选项来使用它。
我使用了moment.js和moment-timezone-with-data.js(包含所有时区)来处理时区。
<div data-countdown="2015/05/20" data-zone="US/Central" class="countdown"></div>
用于将日期转换为适当的时区并以毫秒为单位返回
var timefun = function (countdown,zone){
var date = moment.tz(countdown,"YYYY/MM/DD",zone);
return date.valueOf();
}
利用上面的函数将毫秒作为参数传递给jQuery.countdown()
$(".countdown").countdown(timefun($(".countdown").data("countdown"),$(".countdown").data("zone")))
例如: http://jsfiddle.net/heLrsnqx/2/
如果您使用http://keith-wood.name/countdown.html,请参阅以下示例
答案 1 :(得分:4)
看起来代码中使用的实际日期来自该PHP代码段。您可以使用以下方法在PHP中设置默认时区:
date_default_timezone_set($timezone_identifier);
$timezone_identifier
是一个字符串,可以是'UTC'
或'America/Los_Angeles'
。
有关支持的时区标识符的完整列表,请参阅related PHP docs。
答案 2 :(得分:1)
根据文档,您可以使用event.finalDate
访问finalDate对象。因此,如果您无法设置时区服务器端,请在致电event.finalDate.setUTCHours(10)
event.strftime
有关setUTCHours的更多信息,请访问:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setUTCHours