How to format a date in Moment.js

2019-09-11 00:13发布

问题:

I'm having trouble formatting a date correctly in Moment.js. I'm using the format function with format "LLL D, YYYY" so it should return something like "Sep 15, 2016".

Instead, it's returning a the date in a weird format like "September 15, 2016 12:00 AM 15, 2016".

Here is my code, with the debugging info below.

moment.locale(picker.options.language);

console.log('picker.options.language:');
console.log(picker.options.language);

formatted = moment(picker.date).format(picker.format);

console.log('picker.date:');
console.log(picker.date);

console.log('picker.format:');
console.log(picker.format);

console.log('formatted:');
console.log(formatted);

And the console output from the above code:

回答1:

From http://momentjs.com/docs/#/displaying/format/ we can see that "LLL" represents the format "Month name, day of month, year, time". It seems you want "Month day, year", which is "LL".

Try:

picker.format = 'LL';
formatted = moment(picker.date).format(picker.format);
console.log(formatted);

Outputs (with today's date):

September 15, 2016


回答2:

This should work...

formatted = moment(picker.date).format('MMM D, YYYY')

Ref: http://momentjs.com/docs/#/parsing/string-format/