546 Stimmen

Get String in YYYYMMDD Format von JS Datum Objekt?

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() ?

4voto

anmml Punkte 255

Dieser Code ist fest mit der Antwort von Pierre Guilbert verbunden:

(das funktioniert auch noch nach 10000 Jahren)

YYYYMMDD=new Date().toISOString().slice(0,new Date().toISOString().indexOf("T")).replace(/-/g,"")

3voto

MyrionSC2 Punkte 1153

Ab ES6 können Sie Template-Strings verwenden, um sie etwas kürzer zu machen:

var now = new Date();
var todayString = `${now.getFullYear()}-${now.getMonth()}-${now.getDate()}`;

Bei dieser Lösung wird das Pad nicht auf Null gesetzt. Schauen Sie sich die anderen guten Antworten an, um zu sehen, wie man das macht.

3voto

Oren_H Punkte 3949

Es scheint, dass mootools Folgendes bietet Date().format() : https://mootools.net/more/docs/1.6.0/Types/Date

Ich bin mir allerdings nicht sicher, ob es sich lohnt, sie nur für diese spezielle Aufgabe einzusetzen.

3voto

Ogglas Punkte 48648

Ich verwende in der Regel den unten stehenden Code, wenn ich dies tun muss.

var date = new Date($.now());
var dateString = (date.getFullYear() + '-'
    + ('0' + (date.getMonth() + 1)).slice(-2)
    + '-' + ('0' + (date.getDate())).slice(-2));
console.log(dateString); //Will print "2015-09-18" when this comment was written

Zur Erklärung: .slice(-2) liefert uns die letzten beiden Zeichen der Zeichenkette.

Wir können also auf jeden Fall eine "0" an den Tag oder den Monat anhängen und nur nach den letzten beiden fragen, da diese immer die beiden gewünschten sind.

Wenn MyDate.getMonth() also 9 zurückgibt, ist das der Fall:

("0" + "9") // Giving us "09"

Wenn man also .slice(-2) dazu addiert, erhält man die letzten beiden Zeichen, nämlich:

("0" + "9").slice(-2)

"09"

Wenn date.getMonth() jedoch 10 zurückgibt, dann schon:

("0" + "10") // Giving us "010"

Wenn man also .slice(-2) hinzufügt, erhält man die letzten beiden Zeichen, oder:

("0" + "10").slice(-2)

"10"

2voto

andersh Punkte 7439

Wenn es Ihnen nichts ausmacht, eine zusätzliche (aber kleine) Bibliothek aufzunehmen, Sugar.js bietet viele nützliche Funktionen für die Arbeit mit Daten in JavaScript. Um ein Datum zu formatieren, verwenden Sie die Format Funktion:

new Date().format("{yyyy}{MM}{dd}")

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X