Ich versuche, JS zu verwenden, um eine date object
in eine Zeichenkette in YYYYMMDD
Format. Gibt es einen einfacheren Weg als die Verkettung von Date.getYear()
, Date.getMonth()
y Date.getDay()
?
Antworten
Zu viele Anzeigen?Einfache JS (ES5)-Lösung ohne mögliche Probleme mit Datumssprüngen, die durch Date.toISOString() beim Drucken in UTC verursacht werden:
var now = new Date();
var todayUTC = new Date(Date.UTC(now.getFullYear(), now.getMonth(), now.getDate()));
return todayUTC.toISOString().slice(0, 10).replace(/-/g, '');
Dies als Antwort auf den Kommentar von @weberste zur Antwort von @Pierre Guilbert.
// UTC/GMT 0
document.write('UTC/GMT 0: ' + (new Date()).toISOString().slice(0, 19).replace(/[^0-9]/g, "")); // 20150812013509
// Client local time
document.write('<br/>Local time: ' + (new Date(Date.now()-(new Date()).getTimezoneOffset() * 60000)).toISOString().slice(0, 19).replace(/[^0-9]/g, "")); // 20150812113509
Eine andere Möglichkeit ist die Verwendung von toLocaleDateString
mit einem Gebietsschema, das eine Big-Endian-Datumsformat Standard wie z. B. Schweden, Litauen, Ungarn, Südkorea, ...:
date.toLocaleDateString('se')
Um die Begrenzungszeichen zu entfernen ( -
) müssen lediglich die nicht vorhandenen Ziffern ersetzt werden:
console.log( new Date().toLocaleDateString('se').replace(/\D/g, '') );
Dies hat nicht den möglichen Fehler, der bei UTC-Datumsformaten auftreten kann: Das UTC-Datum kann im Vergleich zum Datum in der lokalen Zeitzone um einen Tag abweichen.
Datumsformat ist ein viel genutztes Paket.
Wie zu verwenden:
Herunterladen und installieren dateformat
von NPM. Benötigen Sie es in Ihrem Modul:
const dateFormat = require('dateformat');
und formatieren Sie dann einfach Ihr Material:
const myYYYYmmddDate = dateformat(new Date(), 'yyyy-mm-dd');