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

8voto

Tamir Nakar Punkte 703

Eine kleine Abwandlung für die akzeptierte Antwort:

function getDate_yyyymmdd() {

    const date = new Date();

    const yyyy = date.getFullYear();
    const mm = String(date.getMonth() + 1).padStart(2,'0');
    const dd = String(date.getDate()).padStart(2,'0');

    return `${yyyy}${mm}${dd}`
}

console.log(getDate_yyyymmdd())

6voto

Tom Tom Punkte 3638

Ausgehend von der Antwort von @o-o erhalten Sie so die Zeichenkette des Datums entsprechend einer Formatzeichenkette zurück. Sie können leicht eine zweistellige Jahr Regex für das Jahr & Millisekunden und dergleichen hinzufügen, wenn Sie sie benötigen.

Date.prototype.getFromFormat = function(format) {
    var yyyy = this.getFullYear().toString();
    format = format.replace(/yyyy/g, yyyy)
    var mm = (this.getMonth()+1).toString(); 
    format = format.replace(/mm/g, (mm[1]?mm:"0"+mm[0]));
    var dd  = this.getDate().toString();
    format = format.replace(/dd/g, (dd[1]?dd:"0"+dd[0]));
    var hh = this.getHours().toString();
    format = format.replace(/hh/g, (hh[1]?hh:"0"+hh[0]));
    var ii = this.getMinutes().toString();
    format = format.replace(/ii/g, (ii[1]?ii:"0"+ii[0]));
    var ss  = this.getSeconds().toString();
    format = format.replace(/ss/g, (ss[1]?ss:"0"+ss[0]));
    return format;
};

d = new Date();
var date = d.getFromFormat('yyyy-mm-dd hh:ii:ss');
alert(date);

Ich weiß nicht, wie effizient das ist jedoch, vor allem perf wise, weil es eine Menge von Regex verwendet. Es könnte wahrscheinlich einige Arbeit verwenden, die ich nicht reine js beherrschen.

NB: Ich habe die vordefinierte Klassendefinition beibehalten, aber vielleicht möchten Sie diese in eine Funktion oder eine benutzerdefinierte Klasse gemäß den Best Practices einfügen.

6voto

Kamil Kiełczewski Punkte 69048

Kürzeste

.toJSON().slice(0,10).split`-`.join``;

let d = new Date();

let s = d.toJSON().slice(0,10).split`-`.join``;

console.log(s);

5voto

Strelok Punkte 47933

Dieser Typ hier => http://blog.stevenlevithan.com/archives/date-time-format schrieb eine format() Funktion für die Javascript's Date Objekt, so dass es mit den bekannten literalen Formaten verwendet werden kann.

Wenn Sie eine vollwertige Datumsformatierung im Javascript Ihrer Anwendung benötigen, verwenden Sie es. Andernfalls, wenn das, was Sie tun wollen, ist eine einmalige, dann Verkettung getYear(), getMonth(), getDay() ist wahrscheinlich am einfachsten.

5voto

Hero Qu Punkte 881

Etwas vereinfachte Version für die beliebteste Antwort in diesem Thread https://stackoverflow.com/a/3067896/5437379 :

function toYYYYMMDD(d) {
    var yyyy = d.getFullYear().toString();
    var mm = (d.getMonth() + 101).toString().slice(-2);
    var dd = (d.getDate() + 100).toString().slice(-2);
    return 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