从服务器我以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
值。我的代码有问题吗?我该如何获得完美约会?
答案 0 :(得分:1)
如果您检查Date.UTC
的语法,
Date.UTC(年,月[,日[,小时[,分钟[,秒[,毫秒]]]]])
它期望不同变量中的值而不是日期字符串中的值。您可以拆分它并手动解析它。
您可以尝试这样的事情:
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();
希望这对你有用!!!