2016-01-31 16 views
-2

我有日期时间字符串从API请求看起来像这样回来:如何解析这个字符串的时间?

2016-01-31T04:22:34+00:00

我不知道这是什么类型的格式。有没有一个原生的JS函数或外部库来解析非军事格式的这些字符串的时间?

例如看起来像这样:

11:22 PM

+1

你尝试过吗? '新日期('2016-01-31T04:22:34 + 00:00')'' – charlietfl

回答

2

是,使用moment库,从API返回的日期是ISO格式,所以你可以使用瞬间

var str = "2016-01-31T04:22:34+00:00"; 
var momObj = moment(str); 
console.log(momObj.format("HH:mm A")); 
2

上面是一个标准的日期格式。

2016-01-31T04:22:34+00:00 

此分解为2016-01-31作为日期组件后面跟着“T”和时间组件04:22:34其次是时区+00:00。

您也可以使用默认javascript DateMoment.js

例子同时使用:

new Date("2016-01-31T04:22:34+00:00") 

moment("2016-01-31T04:22:34+00:00").format("HH:mm:ss") 

解析可以根据您想要的格式改变。有关详细信息,请参阅文档。

0

此日期格式是在ISO 8601定义的标准格式之一直接解析。 以下应解析给定的字符串并以HH:mm AM/PM格式输出时间。

var dtObj = new Date('2016-01-31T04:22:34+00:00'); 
var hours = dtObj.getHours(); 
var minutes = dtObj.getMinutes(); 
var ampm = hours >= 12 ? 'pm' : 'am'; 
hours = hours % 12; 
hours = hours ? hours : 12; // 0 hrs is equivalent to 12 midnight 
minutes = minutes < 10 ? '0'+ minutes : minutes; // prepend a 0 if minute is single digit 
var strTime = hours + ':' + minutes + ' ' + ampm; 
console.log(strTime); // log in console 

谢谢。