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

JavaScript / YouTube and vimeo API - reconciling date formats and sorting

本文关键字:日期 协调 格式 排序 API YouTube vimeo JavaScript      更新时间:2023-09-26

我正在构建一个网页,从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日以来的毫秒数。