450 Stimmen

Wie erhalte ich Monat und Datum von JavaScript im 2-stelligen Format?

Wenn wir anrufen getMonth() y getDate() en date Objekt, erhalten wir die single digit number . Zum Beispiel :

Für january wird angezeigt 1 aber ich muss es anzeigen als 01 . Wie kann man das tun?

1021voto

Hugo Punkte 9921
("0" + this.getDate()).slice(-2)

für das Datum, und ähnliches:

("0" + (this.getMonth() + 1)).slice(-2)

für diesen Monat.

117voto

Qiniso Punkte 2397

Wenn Sie ein Format wie "JJJJ-MM-TTTHH:mm:ss" wünschen, könnte dies schneller gehen:

var date = new Date().toISOString().substr(0, 19);
// toISOString() will give you YYYY-MM-DDTHH:mm:ss.sssZ

Oder das in MySQL übliche Datumsformat "JJJJ-MM-TT HH:mm:ss":

var date2 = new Date().toISOString().substr(0, 19).replace('T', ' ');

Ich hoffe, das hilft

110voto

SomeGuyOnAComputer Punkte 4122

Warum nicht padStart ?

padStart(targetLength, padString) wobei

  • targetLength es 2
  • padString es 0

    // Source: https://stackoverflow.com/a/50769505/2965993

    var dt = new Date();

    year = dt.getFullYear(); month = (dt.getMonth() + 1).toString().padStart(2, "0"); day = dt.getDate().toString().padStart(2, "0");

    console.log(year + '/' + month + '/' + day);

Es werden immer 2-stellige Zahlen zurückgegeben, auch wenn der Monat oder der Tag kleiner als 10 ist.

Anmerkungen:

  • Dies funktioniert nur mit dem Internet Explorer, wenn der js-Code mit babel .
  • getFullYear() gibt die 4-stellige Jahreszahl zurück und erfordert keine padStart .
  • getMonth() gibt den Monat von 0 bis 11 zurück.
    • Zum Monat vor dem Auffüllen wird 1 addiert, damit es bei 1 bis 12 bleibt.
  • getDate() gibt den Tag von 1 bis 31 zurück.
    • Der 7. Tag wird zurückkehren 07 und müssen daher vor dem Auffüllen der Zeichenkette keine 1 hinzufügen.

49voto

Sergey Metlov Punkte 24686

Beispiel für den Monat:

function getMonth(date) {
  var month = date.getMonth() + 1;
  return month < 10 ? '0' + month : '' + month; // ('' + month) for string result
}  

Sie können auch erweitern Date Objekt mit einer solchen Funktion:

Date.prototype.getMonthFormatted = function() {
  var month = this.getMonth() + 1;
  return month < 10 ? '0' + month : '' + month; // ('' + month) for string result
}

34voto

Marcel Punkte 1394

Am besten ist es, wenn Sie einen eigenen einfachen Formatierer erstellen (siehe unten):

getDate() gibt den Tag des Monats zurück (von 1-31)
getMonth() gibt den Monat zurück (von 0-11) < nullbasiert, 0=Januar, 11=Dezember
getFullYear() liefert das Jahr (vierstellig) < verwenden Sie nicht getYear()

function formatDateToString(date){
   // 01, 02, 03, ... 29, 30, 31
   var dd = (date.getDate() < 10 ? '0' : '') + date.getDate();
   // 01, 02, 03, ... 10, 11, 12
   var MM = ((date.getMonth() + 1) < 10 ? '0' : '') + (date.getMonth() + 1);
   // 1970, 1971, ... 2015, 2016, ...
   var yyyy = date.getFullYear();

   // create the format you want
   return (dd + "-" + MM + "-" + yyyy);
}

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