在Javascript中解析Youtube API日期

Parsing a Youtube API Date in Javascript

本文关键字:Youtube API 日期 Javascript      更新时间:2023-09-26

Youtube的API返回一个带有视频数组的JSON对象。每个视频对象都有一个发布日期,格式类似"2012-01-11T20:49:59.415Z"。如果我使用下面的代码初始化Javascript date对象,该对象将返回"无效日期"。

var dt = new Date( "2012-01-11T20:49:59.415Z" );

我在iOS/移动Safari上使用这个,如果有区别的话。

关于如何创建有效对象,有什么建议或想法吗?

尝试使用JavaScript的Date.parse(string)Date构造函数,后者从epoch开始占用毫秒数。"parse"函数应在任何浏览器上接受有效的ISO8601日期。

例如:

var d = new Date(Date.parse("2012-01-11T20:49:59.415Z"));
d.toString(); // => Wed Jan 11 2012 15:49:59 GMT-0500 (EST)
d.getTime(); // => 1326314999415
var dt = "2012-01-11T20:49:59.415Z".replace("T"," ").replace(/'..+/g,"")
dt = new Date( dt );

我最终在http://zetafleet.com/blog/javascript-dateparse-for-iso-8601.日期的格式似乎是"ISO 8601"。在早期的浏览器(Safari 4、Chrome 4、IE 6-8)上,不支持ISO 8601,因此date.parse不起作用。链接博客文章中引用的代码扩展了当前Date类以支持ISO8601。

如果你只需要日期的一部分(例如,如果你不在乎时间或时区),你可以去掉日期字符串的那部分。

此页面包含将youtube(ISO 8601)日期解析为日期对象的代码:

http://webcloud.se/log/JavaScript-and-ISO-8601/

Archive.org备份相同

它对我有效,尽管我还没有测试过很多。