javascript - JS: wrong UTC time - Stack Overflow

I have a unix timestamp. I want to render it as UTC timeIn JS console:var a = new Date(); var res = a.

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?

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?

Share Improve this question edited Dec 4, 2013 at 16:36 Felix Kling 818k181 gold badges1.1k silver badges1.2k bronze badges asked Dec 4, 2013 at 16:35 krevedkokrevedko 4,2631 gold badge20 silver badges13 bronze badges 3
  • 3 Months are zero based, and it seems you're missing a month and a day – adeneo Commented Dec 4, 2013 at 16:37
  • 2 You are getting confused. a.getUTCDay() is day of the week. Not the date. – karthikr Commented Dec 4, 2013 at 16:39
  • 1 Always read the documentation before you are using a method: developer.mozilla/en-US/docs/Web/JavaScript/Reference/…. It explains what getUTCDay and getUTCMonth return. – Felix Kling Commented Dec 4, 2013 at 16:41
Add a ment  | 

3 Answers 3

Reset to default 7

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('-');

The getUTCDay() and getUTCMonth() are both index based (starts with 0), you need to +1 theme to get the "real" value

Unless your codebase is very small, I would refrain from using these poor native JS date formatting functions and just import Moment.js.

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1744719051a4589799.html

相关推荐

  • javascript - JS: wrong UTC time - Stack Overflow

    I have a unix timestamp. I want to render it as UTC timeIn JS console:var a = new Date(); var res = a.

    1天前
    20

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信