我已经尝试moment.js
,将其解析为字符串等。我发现将它转换为我想要的输出没有运气。
我有这段代码
console.clear();
var date = [];
$.ajax({
url: "https://api.myjson.com/bins/1dqpsd",
dataType: "json",
success: function (result) {
//console.log(result); //Now a JSON object
for (var i in result){
//console.log(result[i]);
date[i] =result[i].commit);
console.log(date[i]);
}
}
});
返回类似
的格式"2017-07-22T19:36:50.000+12:00"
"2017-07-22T14:46:40.000+12:00"
"2017-07-21T22:46:18.000+12:00"
"2017-07-20T19:32:10.000+12:00"
我希望能够将其转换为类似
的内容July 22, 2017 6:36 PM
July 22, 2017 2:46 PM
答案 0 :(得分:0)
您可以使用toLocaleString
格式。但这假定+12:00
是适合您的时区。
例如:
var time = "2017-07-22T19:36:50.000+12:00"
var options = { year: 'numeric', month: 'long', day: 'numeric', hour: "2-digit", minute: "2-digit" };
var localstring = new Date(time).toLocaleString('en-US', options)
console.log(localstring)
// 'July 21, 2017, 11:36 PM'
这对我的时区是正确的,即-08;
如果您想要在不同时区的时间,可以在options
:
var options = { year: 'numeric', month: 'long', day: 'numeric', hour: "2-digit", minute: "2-digit", timeZone: "America/New_York" };
new Date(time).toLocaleString('en-US', options)
// 'July 22, 2017, 3:36 AM'
答案 1 :(得分:0)
如果您使用的是moment.js,那么您可以将字符串解析为Date,然后使用适当的格式标记对其进行格式化。
请注意,默认情况下,moment.js会解析ISO 8601字符串,因此您不需要提供解析格式,但是总是提供格式以避免错误地解析格式错误的字符串,这是一种很好的做法:
var s = "2017-07-20T19:32:10.000+12:00";
console.log(moment(s).format('MMMM DD, YYYY hh:mm a'));

<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>
&#13;
用于解析和格式化的标记为in the documentation。