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

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


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

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' ...)  

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


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/

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.