我正在构建一个网页,从YouTube和Vimeo中提取视频,为他们创建缩略图,然后按日期对缩略图进行排序。我目前正在查询vVimeo专辑API endpoint和YouTube data API - 两者都以稍微不同的方式返回视频的日期。
YouTube日期:2012-12-20T08:00:40.000Z
VIMEO日期:2013-01-02 13:33:51
我的问题是,如何将这两种不同的格式转换为单一格式,然后我可以使用JavaScript / jQuery进行排序?我假设如果我设法删除破折号,空格和冒号,删除YouTube日期中的“t”和“z”,我将有一个可以分类的实际数字 - 但它看起来有点笨拙,我希望有更好的方法来格式化这些。有人有主意吗?
答案 0 :(得分:1)
我会将日期转换为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对象中转换日期字符串,然后就可以进行比较以进行排序。
使用Internet Explorer时遇到麻烦,请检查:
<强>更新强>
但是,如果您计划拥有任何浏览器兼容性,则可以使用高级浏览器日期转换器,例如此项目:JS Date Format
答案 1 :(得分:0)
将日期解析为自1970年1月1日以来的毫秒数。这就是JavaScript使用的。