moment.js显示错误的时间

时间:2018-04-17 00:52:16

标签: javascript momentjs countdown countdowntimer

我正在使用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'));
           });
         });
        });

1 个答案:

答案 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倒计时工作示例)