2016-10-18 5 views
0

Ich versuche, den letzten Tag des Monats als Ganzzahl zu erhalten. Also für den Monat sollte der 31. Dezember zurückgegeben werden.Moment.js gibt 1 als letzten Tag des Monats zurück

moment().endOf('month').day() 

Dies wird 1 jedoch zurückkehren - obwohl

moment().endOf('month').format('YYYY-MM-DD') 

gibt das richtige Datum. Kann jemand erklären, warum und wie man den eigentlichen Tag bekommt?

+0

Ist es Ihr tatsächlicher Code? scheint wie 31. Oktober, das ist Montag – Maxx

+2

'moment(). endOf ('Monat'). date()' – Rajesh

Antwort

5

verwenden, um den Tag des Monats zu erhalten, müssen Sie .date() stattdessen verwenden. Siehe den relevanten Teil der Dokumentation: http://momentjs.com/docs/#/get-set/date/

+0

das hat funktioniert :) danke! –

1

day() den Tag der Woche zurück, nicht das Datum

Sie wollen date() statt

+0

Das ist, was ich dachte, das Problem könnte sein .... – Feathercrown

+3

versuchen 'date()', sollte den Trick tun – galchen

+0

Datum war der Trick, danke! –

-1

Wie galchen sagte, Tag() gibt den Wochentag zurück. Um das Datum zu erhalten, manipulieren die Zeichenfolge:

var lastDay = moment().endOf('month').format('YYYY-MM-DD').split('-')[2]; 
+1

Wenn Sie '.format' verwenden möchten, dann warum' '.format ('DD')' – Rajesh

+2

Dies ist unnötig, verwenden Sie einfach '.date()'. –

1
moment().endOf('month').format('DD') 

auch

moment().endOf('month').date(); 
0
var lastDate = moment().endOf('month').format('DD') 

, die den Tag zurück, und Sie können ParseInt für diese es als integer machen

Verwandte Themen