So finden Sie Tag, Monat und Jahr mit moment.js

75

2014-07-28

Wie finde ich das month, yearund daymit moment.jsdem Datumsformat oben gegeben?

var check = moment(n.entry.date_entered).format("YYYY/MM/DD");
var month = check.getUTCMonth();
var day = check.entry.date_entered.getUTCDate();
var year = check.entry.date_entered.getUTCFullYear();
vini
quelle

Antworten:

116

Versuchen Sie es einfach mit:

var check = moment(n.entry.date_entered, 'YYYY/MM/DD');

var month = check.format('M');
var day   = check.format('D');
var year  = check.format('YYYY');

JSFiddle

hsz
quelle
2
Machen Sie sich eine Notiz, dass die Werte für alle eine Zeichenfolge sind, keine Zahl, wie Sie sie vielleicht erwarten
TroodoN-Mike
Für dieses Minus werden Werte in Zeichenfolgen konvertiert.
Andris
112

Ich weiß, dass dies bereits beantwortet wurde, aber ich bin über diese Frage gestolpert und bin den Weg der Verwendung gegangen format, was funktioniert, aber es gibt sie als Zeichenfolgen zurück, wenn ich Ganzzahlen wollte.

Ich habe erkannt, dass Moment kommt mit date, monthund yearMethoden, die die tatsächlichen Zahlen für jede Methode zurück.

moment().date()
moment().month()  // jan=0, dec=11
moment().year()
Chris Schmitz
quelle
9
Es ist nicht .day (), sondern .date (), um den aktuellen Tag des Monats abzurufen.
Luiscvalmeida
40
month()ist nullbasiert, während dies date()nicht der Fall ist. Für viele Anwendungen möchten Siemoment().month() + 1
2Toad
21

Wenn Sie nach einer Antwort in Zeichenfolgenwerten suchen, versuchen Sie dies

var check = moment('date/utc format');
day = check.format('dddd') // => ('Monday' , 'Tuesday' ----)
month = check.format('MMMM') // => ('January','February.....)
year = check.format('YYYY') // => ('2012','2013' ...)  
Sai Ram
quelle
11

Ich erhalte day, monthund yearverwendet dazu spezielle Funktionen vor (). Date () , vor (). Monat () und vor (). Jahr () von momentjs.

let day = moment('2014-07-28', 'YYYY/MM/DD').date();
let month = 1 + moment('2014-07-28', 'YYYY/MM/DD').month();
let year = moment('2014-07-28', 'YYYY/MM/DD').year();

console.log(day);
console.log(month);
console.log(year);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.1/moment.min.js"></script>

Ich weiß nicht, warum es 48 Upvotes für die Antwort von @Chris Schmitz gibt, die nicht 100% korrekt sind.

Der Monat ist in Form eines Arrays und beginnt bei 0, um den genauen Wert zu erhalten, den wir verwenden sollten 1 + moment().month()

Vikasdeep Singh
quelle
1

Hier ist ein Beispiel, das Sie verwenden könnten:

 var myDateVariable= moment("01/01/2019").format("dddd Do MMMM YYYY")
  • dddd: Ganztagsname

  • Tun: Tag des Monats

  • MMMM: Vollständiger Monatsname

  • JJJJ: 4-stelliges Jahr

Für weitere Informationen :

https://flaviocopes.com/momentjs/

Saad Joudi
quelle