我正在使用jQuery.countdown和moment.js创建一个多实例/时区感知倒数计时器。除时区外,一切都有效。投掷时区会将倒计时更改为GMT,而不是我指定的区域。无论我选择什么时区,计时器都保持格林威治标准时间。
$(function(){
$('[data-countdown]').each(function() {
var $this = $(this), finalDate = $(this).data('countdown');
var finalDate = moment.tz(finalDate, 'America/Los_Angeles');
$this.countdown(finalDate.toDate(), function(event) {
var totalHours = event.offset.totalDays * 24 + event.offset.hours;
$(this).html(event.strftime('Expires in ' + totalHours + ' hr %-M min'));
});
});
});
答案 0 :(得分:1)
似乎工作正常?
Here is a fiddle logging out both Los Angeles time then New York time for same Moment object
代码简单:
$(function(){
var finalDate = moment.tz("2014-06-01 12:00", 'America/Los_Angeles');
console.log(
finalDate.format("ha z"),
finalDate.tz('America/New_York').format("ha z"))
var nextYear = moment.tz("2018-04-21 00:00", "America/Sao_Paulo");
$('#clock').countdown(nextYear.toDate(), function(event) {
$(this).html(event.strftime('%D days %H:%M:%S'));
});
})
您是否检查过控制台是否有任何错误消息?
因为我最初看到了这一点:
" Moment Timezone没有America / Los_Angeles的数据。请参阅http://momentjs.com/timezone/docs/#/data-loading/。"
在实现之前我必须包含moment-timezone-with-data软件包而不是vanilla moment-timezone才能让它工作。
http://momentjs.com/timezone/docs/#/data-loading/
(编辑的代码bin包含一个Jquery倒计时工作示例)