JavaScript / YouTube和vimeo API - 协调日期格式和排序

时间:2013-01-05 17:25:04

标签: javascript jquery datetime youtube-api vimeo

我正在构建一个网页,从YouTube和Vimeo中提取视频,为他们创建缩略图,然后按日期对缩略图进行排序。我目前正在查询vVimeo专辑API endpointYouTube data API - 两者都以稍微不同的方式返回视频的日期。

  

YouTube日期:2012-12-20T08:00:40.000Z

     

VIMEO日期:2013-01-02 13:33:51

我的问题是,如何将这两种不同的格式转换为单一格式,然后我可以使用JavaScript / jQuery进行排序?我假设如果我设法删除破折号,空格和冒号,删除YouTube日期中的“t”和“z”,我将有一个可以分类的实际数字 - 但它看起来有点笨拙,我希望有更好的方法来格式化这些。有人有主意吗?

2 个答案:

答案 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使用的。