使用jQuery CountDown时设置时区

Mar*_*tin 6 jquery jquery-countdown

目前我们有这个代码,除了需要使用指定的时区而不是用户的时区外,它有效:

 $('#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');
        });
Run Code Online (Sandbox Code Playgroud)

我已经看到了几个添加时区的例子,但没有一个像我们一样使用jquery倒计时插件.

有关如何将+10添加为当前时区的任何想法?所以它使用它而不是用户的时区?

谢谢.

Pav*_*ala 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>
Run Code Online (Sandbox Code Playgroud)

函数将日期转换为适当的时区并以毫秒为单位返回

var timefun = function (countdown,zone){
 var date = moment.tz(countdown,"YYYY/MM/DD",zone);
 return date.valueOf();   
}
Run Code Online (Sandbox Code Playgroud)

利用上面的函数将毫秒作为参数传递给jQuery.countdown()

$(".countdown").countdown(timefun($(".countdown").data("countdown"),$(".countdown").data("zone")))
Run Code Online (Sandbox Code Playgroud)

示例:http: //jsfiddle.net/heLrsnqx/2/

如果您使用的是http://keith-wood.name/countdown.html,请参阅以下示例

示例:http: //jsfiddle.net/w1oyv8kv/


Mic*_*hal 4

看起来代码中使用的实际日期来自该 PHP 片段。您可以使用以下命令在 PHP 中设置默认时区:

date_default_timezone_set($timezone_identifier);
Run Code Online (Sandbox Code Playgroud)

$timezone_identifier是一个字符串,可以是'UTC'or之类的东西'America/Los_Angeles'

有关支持的时区标识符的完整列表,请参阅相关的 PHP 文档