Reputation: 4243
I have a unix timestamp. I want to render it as UTC time
In JS console:
var a = new Date();
var res = a.getUTCDay()+ '-' + a.getUTCMonth() + '-' + a.getUTCFullYear();
res;
The result is "3-11-2013", but the value of 'a' variable is "Wed, 04 Dec 2013 16:28:03 GMT"
What is wrong?
Upvotes: 2
Views: 985
Reputation: 3938
Unless your codebase is very small, I would refrain from using these poor native JS date formatting functions and just import Moment.js.
Upvotes: 0
Reputation: 816424
What is wrong?
getUTCDay
returns the day of the week, not the day of the month:
The
getUTCDay()
method returns the day of the week in the specified date according to universal time, where 0 represents Sunday.
getUTCMonth
returns the month, 0 based:
The value returned by
getUTCMonth
is an integer between 0 and 11 corresponding to the month. 0 for January, 1 for February, 2 for March, and so on.
You want to use .getUTCDate
instead and add +1
to the return value of .getUTCMonth
:
var res = [a.getUTCDate(), a.getUTCMonth() + 1, a.getUTCFullYear()].join('-');
Upvotes: 7
Reputation: 8588
The getUTCDay()
and getUTCMonth()
are both index based (starts with 0), you need to +1 theme to get the "real" value
Upvotes: 5