如何使用YouTube上传日期作为与真实日期的时间比较

How to use youtube upload date as a time comparison to real date?

本文关键字:日期 真实 比较 时间 何使用 YouTube      更新时间:2023-09-26

我有youtube rss数据给我的这个字符串,我可以抓取并存储它,但我不知道如何将字符串操作成我试图使用它的东西。

2012-08-08T16:49:52.000Z

我想使用上面的字符串并创建一个 jquery 函数来解析它并吐出视频上传了多长时间。 例如:1天前,15天前,20天前。我不认为解析会做太多的工作,但如果弄清楚视频上传了多少天背后的逻辑非常困难,那么我只会将上传日期显示为月日。例如:8月8

总之:

  • 我需要在提供的字符串中获取 T 字符之前的日期
  • 然后将其显示为 3 天前格式或月日格式

我不知道该怎么做。希望有人可以帮助我。:)

更新:因此,由于这篇文章中的评论,我已经抓取了日期并将其与其他上传信息分开。

var uploadDate = x.substring(0, x.indexOf('T'));

给我2012-08-08

更新2:我已经用split()解析了月份和日期

var date = uploadDate.split('-');
var month = date[1];
var day = date[2];

给出答案后我的代码

function differenceDate(dateStr) {
    var dateString = dateStr.split('T')[0];
    var date = dateString.split('-');
    var firstDate = new Date(parseInt(date[0],10), parseInt(date[1],10)-1, parseInt(date[2],10));
    var secondDate = new Date();
    var diffDate = secondDate.getTime() - firstDate.getTime();
    var converted = diffDate/1000/60/60/24;
    var uploaded;
    if(converted < 1){
        uploaded = 'few hours ago';
    } else if(converted>1 && converted<2){
        uploaded = '1 day ago';
    } else if(converted>2){
        var daysAgo = Math.floor(converted);
        uploaded = daysAgo+ ' days ago';
    }
    return uploaded;
}
var daysAgo = differenceDate( '2012-08-08T16:49:52.000Z' );

由于您可以获取日期字符串,因此我假设您可以将其从"T"字符中拆分出来,并将结果数组的索引 0 发送到您最喜欢的日期差函数:)即

function millisBetween(dateStr) {
    var dateArray = dateStr.split("-");
    // new Date(year, month, day)
    var firstDate = new Date(parseInt(dateArray[0],10), parseInt(dateArray[1],10) - 1, parseInt(dateArray[2],10));
     // today
    var secondDate = new Date();
    var millisBetween = secondDate.getTime() - firstDate.getTime();
    return millisBetween;
}
var strDatePart = "2012-08-08T16:49:52.000Z".split("T")[0];
var millis = millisBetween(strDatePart); // date difference in milliseconds

在此之后,您所要做的就是检查 millis 变量,并找出视频是在几分钟前、几小时前还是几年前上传的。