2017-08-21 3 views
0

Ich zähle bis zur Sonnenfinsternis mit jquery countdown.js. Auf meinem Desktop zählt alles richtig. Auf Handy (Android) ist der Countdown eine Stunde voraus. Auf dem Handy anderer Leute zeigt der Countdown 0 Stunden an. Was mache ich falsch? Verfolge ich nicht die Zeitzone? Sollte das eine Rolle spielen? Der Countdown läuft bis zur Sonnenfinsternis (in weniger als 4 Stunden), sodass ich schnell Hilfe gebrauchen kann!javascripts/jquery countdown geben falsche Stunden auf Handy

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') 
     ); 
     } 

    }); 

Antwort

0

Ich denke, Ihre Annahme ist richtig. Sie müssen die aktuelle Zeitzone berücksichtigen. Der einfachste Weg, dies zu tun ist moment.js zu verwenden (https://momentjs.com/) und den Code wie folgt zu ändern:

var date = moment.utc('2017-08-21T17:18:00').toDate(); 

$("#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') 
         ); 
      } 

     }); 

Beachten Sie auch, dass ich die Zeit in UTC statt EST angegeben.

Wenn Sie Ihren Code in meiner Zeitzone, CET, ausführen, habe ich nur Nullen. Bei Verwendung des obigen Codes habe ich zum Zeitpunkt der Veröffentlichung etwa 3 Stunden und 10 Minuten Zeit.