我正在构建一个网页,从YouTube和Vimeo中提取视频,为它们创建缩略图,然后按日期对缩略图进行排序。我目前正在查询vVimeo专辑API端点和YouTube数据API -两者都以略有不同的方式返回视频日期。
YouTube日期:2012-12-20T08:00:40.000Z
VIMEO日期:2013-01-02 13:33:51
我的问题是,我如何把这两种不同的格式变成一个单一的格式,我可以用JavaScript/jQuery排序?我假定,如果我设法去掉破折号、空格和冒号,就去掉&;t&;和";z"在YouTube日期,我将有一个实际的数字,可以排序-但它似乎有点乱,我希望有一个更好的方式来格式化这些。有人有什么想法吗?
我会将日期转换为Javascript Date对象,然后从实例中获取getTime()来对其排序。
让我们做一个例子:
var dates = [];
dates.push(new Date('2013-01-02 13:33:51'));
dates.push(new Date('2012-12-20T08:00:40.000Z'));
现在您有一个包含2个日期的数组要排序。让我们开始吧!
function sortByDate(a, b) {
return a.getTime() - b.getTime();
}
dates.sort(sortByDate);
如果你想要一个后代排序,只需反转a和b:
function sortByDate(a, b) {
return b.getTime() - a.getTime();
}
在你可以检查你的数组排序做一个console.log(dates)
。
对于问题的答案,您只需要将日期字符串转换为date对象,然后您将能够与sort进行比较。
Internet Explorer出现问题,检查这个:
- Javascript日期在IE nan, Firefox和Chrome ok IE 7中Javascript Date函数返回NaN的问题
更新:
然而,如果你打算有任何浏览器的兼容性,你可以使用先进的浏览器日期转换器,像这个项目:
将日期解析为自1970年1月1日以来的毫秒数。