NealR
NealR

Reputation: 10699

Use Moment to get month of Date object

I'm sure this is a simple thing but I haven't been able to find the specific syntax in any of the documentation or in any related posts.

In order to get a month-picker to work i need to instantiate a new Date object when my controller initializes.

Controller

scope.date = new Date();

This creates a date object with the following format:

Mon Feb 01 2016 15:21:43 GMT-0500 (Eastern Standard Time)

However when I attempt to pull the month from the date object, using moment, I get the error:

enter code here

getMonth method

var month = moment().month(scope.date, "ddd MMM DD YYYY");

Any idea how to pull the month from the above date object without using substring?

Upvotes: 24

Views: 112206

Answers (3)

Adrian
Adrian

Reputation: 21

You can use moment(scope.date).format("M");

Upvotes: 1

Mawcel
Mawcel

Reputation: 2007

As moment.month() returns zero based month number you can use moment.format() to get the actual month number starting from 1 like so

moment.format(scope.date, 'M');

Upvotes: 5

peteb
peteb

Reputation: 19428

You can use moment.month() it will return or set the value.

moment.month() is zero based, so it will return 0-11 when doing a get and it expects a value of 0-11 when setting passing a value in.

var d = moment(scope.date);
d.month(); // 1
d.format('ddd MMM DD YYYY'); // 'Mon Feb 01 2016'

Upvotes: 54

Related Questions