Einführung
In diesem Lab werden wir lernen, wie man ein Datum in das erweiterte ISO-Format (ISO 8601), einschließlich der Zeitzonenverschiebung, umwandelt. Wir werden die Date.prototype.getTimezoneOffset()-Methode verwenden, um die Zeitzonenverschiebung zu erhalten und umzukehren. Anschließend werden wir eine Hilfsfunktion definieren, um jede übergebene Zahl zu einem Integer zu normalisieren und mit String.prototype.padStart() auf 2 Stellen aufzurunden. Schließlich werden wir die integrierten Methoden im Date-Prototype verwenden, um den ISO 8601-String mit Zeitzonenverschiebung zu erstellen. Am Ende dieses Labs werden Sie ein besseres Verständnis dafür haben, wie man in JavaScript mit Daten umgeht.
Datum in das ISO-Format mit Zeitzone umwandeln
Um ein Datum in das erweiterte ISO-Format (ISO 8601), einschließlich der Zeitzonenverschiebung, umzuwandeln, folgen Sie diesen Schritten:
- Öffnen Sie das Terminal/SSH und geben Sie
nodeein, um zu beginnen zu codieren. - Verwenden Sie
Date.prototype.getTimezoneOffset(), um die Zeitzonenverschiebung zu erhalten und umzukehren. Speichern Sie das Vorzeichen indiff. - Definieren Sie eine Hilfsfunktion,
pad(), die jede übergebene Zahl mitMath.floor()undMath.abs()zu einem Integer normalisiert und mitString.prototype.padStart()auf2Stellen aufrundet. - Verwenden Sie
pad()und die integrierten Methoden imDate-Prototype, um den ISO 8601-String mit Zeitzonenverschiebung zu erstellen.
Hier ist der Code, den Sie verwenden können:
const toISOStringWithTimezone = (date) => {
const tzOffset = -date.getTimezoneOffset();
const diff = tzOffset >= 0 ? "+" : "-";
const pad = (n) => `${Math.floor(Math.abs(n))}`.padStart(2, "0");
return (
date.getFullYear() +
"-" +
pad(date.getMonth() + 1) +
"-" +
pad(date.getDate()) +
"T" +
pad(date.getHours()) +
":" +
pad(date.getMinutes()) +
":" +
pad(date.getSeconds()) +
diff +
pad(tzOffset / 60) +
":" +
pad(tzOffset % 60)
);
};
Verwenden Sie die Funktion toISOStringWithTimezone() mit einem new Date()-Objekt als Argument, um das Datum im ISO-Format mit Zeitzonenverschiebung zu erhalten. Beispiel:
toISOStringWithTimezone(new Date()); // '2020-10-06T20:43:33-04:00'
Zusammenfassung
Herzlichen Glückwunsch! Sie haben das Lab "Datum in das ISO-Format mit Zeitzone" abgeschlossen. Sie können in LabEx weitere Labs absolvieren, um Ihre Fähigkeiten zu verbessern.