Wie kann ich bei Javascript eine andere Zeitzone anzeigen?
Hallo,
ich habe absolut keine Ahnung von Javascript, bin aber jetzt darauf angewiesen.
Ich möchte gerne auf einer Webseite die fortlaufende Uhrzeit für ein paar Städte in verschiedenen Zeitzonen anzeigen. Bei PHP wäre das sehr einfach indem ich für Melbourne z.B. folgendes eingebe:
date_default_timezone_set('Australia/Melbourne');
Aber leider kann PHP ja keine fortlaufende Uhrzeit anzeigen
Nun habe ich dieses Javascript Programm im Internet entdeckt und das entspricht auch meinen Vorstellungen. Nur wie kann ich hier andere Zeitzonen einstellen?
<h3>Berlin</h3>
<p id="zeit_berlin">
<script>
window.setInterval("datum()",1000);
function datum() {
var zeit = new Date ();
var stunde = (zeit.getHours() < 10 ? '0' + zeit.getHours() : zeit.getHours());
var minute = (zeit.getMinutes() < 10 ? '0' + zeit.getMinutes() : zeit.getMinutes());
var sekunde = (zeit.getSeconds() < 10 ? '0' + zeit.getSeconds() : zeit.getSeconds());
document.getElementById("zeit_berlin").innerHTML = ' '
+ stunde + ':' + minute + ':' + sekunde;
}
datum();
</script>
</p>
Vielen Dank für jede Hilfe.
2 Antworten
Du kannst die toLocaleString-Methode verwenden. Im options-Argument kann eine Zeitzone gesetzt werden. Die genauen Namen gibt IANA vor, für einen raschen Einblick genügt womöglich auch diese Seite.
Beispiel:
someDate.toLocaleString("en-US", { timeZone: "America/New_York" });
Schau in die verlinkte Dokumentation bezüglich konkreter Formatierungen der Zeitangabe.
Noch eine andere Maßnahme wäre es, selbst kurz via Google zu recherchieren, wie groß die Zeitunterschiede zur Weltzeit (UTC) sind. Dein Skript könntest du dementsprechend anpassen:
function aktuelleZeit(stundenabweichung, minutenabweichung, sekundenabweichung) {
const zeit = new Date();
const stunde = zeit.getUTCHours() + stundenabweichung;
const stundenanzeige = (stunde < 10 ? '0' + stunde : stunde);
// etc. ...
return stundenanzeige + ':' + minutenanzeige + ':' + sekundenanzeige;
}
document.getElementById("zeit_berlin").innerHTML = aktuelleZeit(1, 0, 0);
Schau dazu in die Dokumentation von MDN. Zu jeder Angabe gibt es eine UTC-Methode.
An sich selbst ist es in JavaScript nicht möglich, andere Zeitzonen ohne weiteres abzufragen. In der Funktion hier fragst du immer die Client-seitige Zeit ab (vom System des Benutzers her). Bedenke unbedingt, dass JavaScript eine client-seitige Programmiersprache ist. Sicherlich gibt es Frameworks, welche eine Abfrage der Zeit nach Zeitzonen möglich macht. Müsstest du mal googeln.