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 变量,看看视频是几分钟前、几小时前还是几年前上传的。
关于javascript - 如何使用 youtube 上传日期作为与实际日期的时间比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11877298/