Date.UTC()获取值null

时间:2016-04-13 06:58:07

标签: javascript angularjs time

从服务器我以UTC格式获取日期,如

2016-04-13T02:37:13.211316121-04:00 

当我用new Date(data.Created_at)显示时,我得到7分钟的时差。就像我以格式{{my_date |。}显示我的日期一样日期:'h:mm a'}},显示12:05 PM,显示11:58 AM。所以我尝试了这个,

data.Created_at = new Date(Date.UTC(data.Created_at))

返回null值。我的代码有问题吗?我该如何获得完美约会?

4 个答案:

答案 0 :(得分:1)

如果您检查Date.UTC的语法,

  

Date.UTC(年,月[,日[,小时[,分钟[,秒[,毫秒]]]]])

它期望不同变量中的值而不是日期字符串中的值。您可以拆分它并手动解析它。

您可以尝试这样的事情:

JSFiddle

var d = "2016-04-13T02:37:13.211316121-04:00";
var date_arr = d.split(/[-|T|\.|:]/);
var o = new Date(Date.UTC(date_arr[0], date_arr[1], date_arr[2], date_arr[3], date_arr[4], date_arr[5]));
console.log(date_arr, o);

另外,考虑到时间为8:07 AM而我的时区为2:37,它会给我+5:30

答案 1 :(得分:0)

像这样使用

Date.UTC(year,month,day,hours,minutes,seconds,millisec)

答案 2 :(得分:0)

您使用的代码是处理日期的无效方式。您可以使用此代码

new Date('2016-04-13T02:37:13.211316121-04:00').toISOString();

答案 3 :(得分:0)

    var created_at = new Date(createdAt);

var created_at_date = (created_at.getUTCMonth()+1) + "/" + created_at.getUTCDate() + "/" + created_at.getUTCFullYear() + "/" + created_at.getHours() + ":" 
+ created_at.getMinutes() + ":" + created_at.getSeconds();

希望这对你有用!!!