0

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

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

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

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

4

2 回答 2

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

于 2013-01-06T06:57:43.283 回答
0

只需将日期解析为自 1970 年 1 月 1 日以来的毫秒数。这就是 JavaScript 使用的。

于 2013-01-05T17:27:38.053 回答