2016-08-09 61 views
0

Ich habe eine Zeit, die im PHP-Format ist: g:ia T z. 14:00 Uhr AEST. Ich habe dann in einem versteckten div darunter die Zeitzone im gängigen Format ausgedruckt: Australia/Sydney. Diese Zeitzone ist die Zeitzone, die für die Ausgabe dieser Zeit verwendet wird (ich habe mehrere dieser Zeiten und unterschiedliche Zeitzonen auf meiner Seite). Ich habe einen Link oben auf meiner Seite, der es dem Benutzer ermöglicht, alle Zeiten in ihre lokale Zeit umzuwandeln (was noch nicht funktioniert). Wenn der Benutzer auf diesen Link klickt, gibt er seine Zeitzone im selben Format aus, z. Europa/London.Konvertieren Sie eine Zeit in eine andere Zeitzone mit Javascript

Also, wie ändere ich die Zeiten auf die Zeitzone des Benutzers, wenn ich die Zeit und die Zeitzone habe, um diese Zeit zu erstellen, und die Zeitzone des Benutzers mit Javascript?

+3

Bibliothek Empfehlungen sind offtopic für Stack-Überlauf, aber da du nicht speziell nach einem gefragt hast, erwähne ich [moment.js] (http://momentjs.com/) - wenn du dich mit Datum/Zeiten auf dieser Ebene in JS beschäftigst, ist es wirklich hilfreich etwas mehr als das Core-Date-Objekt. –

+0

Dank James, ich war nicht unbedingt auf der Suche nach Bibliothek Empfehlungen, aber ich werde sicherlich moment.js überprüfen. Gibt es eine Möglichkeit, dies zu lösen (ohne große Mengen an Code zu schreiben), indem Sie das Core-Date-Objekt verwenden. (Entschuldigung, ich bin neu in der Javascript-Welt). – user1190132

+0

Sie können Benutzer UTC-Offset von 'GetTimezoneOffset();' von Date-Objekt in Javascript Viz. Das Nein. von Minuten Benutzer Zeitzone unterscheiden sich von UTC, durch die Sie ihre Zeitzone feststellen können – Viney

Antwort

0

Während ich noch in eine bestimmte Codeantwort für mich selbst schaue, kann ich von meinen Nachforschungen bestätigen, dass Moment Timezone der einfachste Weg ist, Zeiten in verschiedene Zeitzonen mit Javascript zu konvertieren. Danke James Thorpe, dass er mich in die richtige Richtung gebracht hat. moment-timezone.js wurde speziell für diesen Zweck erstellt, aber reguläre moment.js wird nicht zwischen Zeitzonen konvertieren (zumindest nicht einfach). Hier Moment-timezone.js in Aktion:

var jun = moment("2014-06-01T12:00:00Z"); 
var dec = moment("2014-12-01T12:00:00Z"); 

jun.tz('America/Los_Angeles').format('ha z'); // 5am PDT 
dec.tz('America/Los_Angeles').format('ha z'); // 4am PST 

jun.tz('America/New_York').format('ha z');  // 8am EDT 
dec.tz('America/New_York').format('ha z');  // 7am EST 

jun.tz('Asia/Tokyo').format('ha z');   // 9pm JST 
dec.tz('Asia/Tokyo').format('ha z');   // 9pm JST 

jun.tz('Australia/Sydney').format('ha z');  // 10pm EST 
dec.tz('Australia/Sydney').format('ha z');  // 11pm EST 

Sie können mehr Informationen finden Sie hier aus: http://momentjs.com/timezone/ und auch gibt es eine gute Wiki hier über Zeitzonen allgemeiner: https://stackoverflow.com/tags/timezone/info