0

我有这个 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' );
4

1 回答 1

1

由于您可以获取日期字符串,我假设您可以将其从 'T' char 拆分并将结果数组的索引 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 变量并确定视频是几分钟前、几小时前或几年前上传的。

于 2012-08-09T06:01:21.160 回答