amacrobert
amacrobert

Reputation: 3139

How to format a date in Moment.js

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:

debugging output

Upvotes: 0

Views: 4489

Answers (2)

Pranesh Ravi
Pranesh Ravi

Reputation: 19113

This should work...

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

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

Upvotes: 5

tcooc
tcooc

Reputation: 21209

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

Upvotes: 3

Related Questions