javascripts / jquery倒计时在移动设备上给出了错误的时间

时间:2017-08-21 13:22:25

标签: jquery countdown

我使用jquery countdown.js倒计时。我桌面上的所有内容都正确无误。在移动设备(Android)上,倒计时提前一小时。在其他人的手机上,倒计时显示0小时。我究竟做错了什么?我不考虑时区吗?那有关系吗?倒计时是日食(距离现在不到4小时),所以我可以快速使用帮助!

var date = new Date("2017-08-21T13:18:00"); //1:18 p.m. EST

 $("#dayElem")
  .countdown(date, function(event) {
    if (event.strftime('%-D') < 10) {
        $(this).text('0' +
          event.strftime('%-D')
        );
     } else {
        $(this).text(
          event.strftime('%-D')
        ); 
     }
  });

  $("#hourElem")
  .countdown(date, function(event) {
     if (event.strftime('%-H') < 10) {
        $(this).text('0' +
          event.strftime('%-H')
        );
     } else {
        $(this).text(
          event.strftime('%-H')
        ); 
     }
  });
   $("#minuteElem")
  .countdown(date, function(event) {
     if (event.strftime('%-M') < 10) {  
        $(this).text('0' +
          event.strftime('%-M')
        );
     } else {
        $(this).text(
          event.strftime('%-M')
        ); 
     }
  });
  $("#secondElem")
  .countdown(date, function(event) {

    if (event.strftime('%-S') < 10) {
        $(this).text('0' +
            event.strftime('%-S')
         ); 
      } else {
        $(this).text(
            event.strftime('%-S')
         ); 
      }

  });

1 个答案:

答案 0 :(得分:0)

我认为你的假设是正确的。您必须考虑当前时区。 最简单的方法是使用moment.js(https://momentjs.com/)并修改代码如下:

tags$style(HTML(paste0(".irs .irs-single, .irs .irs-bar-edge, .irs .irs-bar {background: ",
                         bkg_color,";border-top: ",bkg_color,";border-bottom: ",bkg_color,"; border: ",bkg_color,"}")))

另请注意,我以UTC而非EST指定时间。

在我的时区CET中运行代码时,我只得到了零。使用上面的代码时,我发布这个代码时大约需要3小时10分钟。