JavaScript-Datum jetzt - So erhalten Sie das aktuelle Datum in JavaScript

Viele Anwendungen, die Sie erstellen, verfügen über eine Datumskomponente, unabhängig davon, ob es sich um das Erstellungsdatum einer Ressource oder den Zeitstempel einer Aktivität handelt.

Der Umgang mit Datums- und Zeitstempelformatierungen kann anstrengend sein. In diesem Handbuch erfahren Sie, wie Sie das aktuelle Datum in verschiedenen Formaten in JavaScript abrufen.

Datumsobjekt von JavaScript

JavaScript verfügt über ein integriertes DateObjekt, das Datum und Uhrzeit speichert und Methoden für deren Behandlung bereitstellt.

DateVerwenden Sie das newSchlüsselwort, um eine neue Instanz des Objekts zu erstellen :

const date = new Date();

Das DateObjekt enthält eine Number, die Millisekunden darstellt, die seit der Epoche, dh dem 1. Januar 1970, vergangen sind.

Sie können dem DateKonstruktor eine Datumszeichenfolge übergeben , um ein Objekt für das angegebene Datum zu erstellen:

const date = new Date('Jul 12 2011');

Verwenden Sie die getFullYear()Instanzmethode des DateObjekts, um das aktuelle Jahr abzurufen. Die getFullYear()Methode gibt das Jahr des angegebenen Datums im DateKonstruktor zurück:

const currentYear = date.getFullYear(); console.log(currentYear); //2020

Ebenso gibt es Methoden, um den aktuellen Tag des Monats und den aktuellen Monat abzurufen:

const today = date.getDate(); const currentMonth = date.getMonth() + 1; 

Die getDate()Methode gibt den aktuellen Tag des Monats zurück (1-31).

Die getMonth()Methode gibt den Monat des angegebenen Datums zurück. Ein Punkt, den Sie bei der getMonth()Methode beachten sollten , ist, dass sie 0-indizierte Werte (0-11) zurückgibt, wobei 0 für Januar und 11 für Dezember steht. Daher die Addition von 1, um den Monatswert zu normalisieren.

Datum jetzt

now()ist eine statische Methode des DateObjekts. Es gibt den Wert in Millisekunden zurück, der die seit der Epoche verstrichene Zeit darstellt. Sie können die von der now()Methode zurückgegebenen Millisekunden an den DateKonstruktor übergeben, um ein neues DateObjekt zu instanziieren :

const timeElapsed = Date.now(); const today = new Date(timeElapsed);

Formatieren des Datums

Sie können das Datum mithilfe der Methoden des DateObjekts in mehrere Formate (GMT, ISO usw.) formatieren .

Die toDateString()Methode gibt das Datum in einem für Menschen lesbaren Format zurück:

today.toDateString(); // "Sun Jun 14 2020"

Die toISOString()Methode gibt das Datum zurück, das dem erweiterten ISO 8601-Format folgt:

today.toISOString(); // "2020-06-13T18:30:00.000Z"

Die toUTCString()Methode gibt das Datum im UTC-Zeitzonenformat zurück:

today.toUTCString(); // "Sat, 13 Jun 2020 18:30:00 GMT"

Die toLocaleDateString()Methode gibt das Datum in einem ortsabhängigen Format zurück:

today.toLocaleDateString(); // "6/14/2020"

Die vollständige Referenz zu den DateMethoden finden Sie in der MDN-Dokumentation.

Benutzerdefinierte Datumsformatierungsfunktion

Abgesehen von den im obigen Abschnitt genannten Formaten hat Ihre Anwendung möglicherweise ein anderes Format für Daten. Es könnte in yy/dd/mmoder yyyy-dd-mmFormat oder etwas Ähnliches sein.

Um dieses Problem anzugehen, ist es besser, eine wiederverwendbare Funktion zu erstellen, damit sie für mehrere Projekte verwendet werden kann.

In diesem Abschnitt erstellen wir eine Dienstprogrammfunktion, die das Datum in dem im Funktionsargument angegebenen Format zurückgibt:

const today = new Date(); function formatDate(date, format) { // } formatDate(today, 'mm/dd/yy');

Sie müssen die Zeichenfolgen "mm", "tt", "jj" durch die entsprechenden Werte für Monat, Tag und Jahr aus der im Argument übergebenen Formatzeichenfolge ersetzen.

Dazu können Sie die folgende replace()Methode verwenden:

format.replace('mm', date.getMonth() + 1);

Dies führt jedoch zu einer starken Verkettung der Methoden und erschwert die Wartung, wenn Sie versuchen, die Funktion flexibler zu gestalten:

format.replace('mm', date.getMonth() + 1) .replace('yy', date.getFullYear()) .replace('dd', date.getDate());

Anstatt Methoden zu verketten, können Sie mit der replace()Methode reguläre Ausdrücke verwenden.

Erstellen Sie zunächst ein Objekt, das ein Schlüssel-Wert-Paar der Teilzeichenfolge und ihren jeweiligen Wert darstellt:

const formatMap = { mm: date.getMonth() + 1, dd: date.getDate(), yy: date.getFullYear().toString().slice(-2), yyyy: date.getFullYear() };

Verwenden Sie als Nächstes einen regulären Ausdruck, um die Zeichenfolgen abzugleichen und zu ersetzen:

formattedDate = format.replace(/mm|dd|yy|yyy/gi, matched => map[matched]);

Die komplette Funktion sieht folgendermaßen aus:

function formatDate(date, format) { const map = { mm: date.getMonth() + 1, dd: date.getDate(), yy: date.getFullYear().toString().slice(-2), yyyy: date.getFullYear() } return format.replace(/mm|dd|yy|yyy/gi, matched => map[matched]) }

Sie können der Funktion auch die Möglichkeit hinzufügen, Zeitstempel zu formatieren.

Fazit

Ich hoffe, Sie haben jetzt ein besseres Verständnis des DateObjekts in JavaScript. Sie können auch andere Bibliotheken von Drittanbietern wie datesjund verwenden moment, um Datumsangaben in Ihrer Anwendung zu verarbeiten.

Bis zum nächsten Mal bleiben Sie sicher und hektisch.