【发布时间】:2013-11-16 02:59:37
【问题描述】:
我正在使用一个名为 YOUMAX 的代码库,它在我的网站上显示来自我的频道的 youtube 视频。
我无法让视频显示正确的上传时间。现在,我可以说它是“3 小时前”或“2 天前”或“5 个月前”上传的..
但我有几分钟无法弄清楚代码。
function getDateDiff(timestamp) {
if (null === timestamp || timestamp === "" || timestamp === "undefined") return "?";
var splitDate = ((timestamp.toString().split('T'))[0]).split('-');
var splitTime = ((timestamp.toString().split('T'))[1]).split(':');
var d1 = new Date();
var d1Y = d1.getFullYear();
var d2Y = parseInt(splitDate[0], 10);
var d1M = d1.getMonth() + 1;
var d2M = parseInt(splitDate[1], 10);
var d1D = d1.getDate();
var d2D = parseInt(splitDate[2], 10);
var d1H = d1.getHours();
var d2H = parseInt(splitTime[0], 10);
var diffInHours = (d1H + 24 * d1D + 720 * d1M + 12 * d1Y) - (d2H + 24 * d2D + 720 * d2M + 12 * d2Y);
if (diffInHours <= 1) return "1 Hour";
else if (diffInHours < 23) return diffInHours + " Hours";
var diffInDays = (d1D + 30 * d1M + 360 * d1Y) - (d2D + 30 * d2M + 360 * d2Y);
if (diffInDays < 7) return diffInDays + " days";
else if (diffInDays > 7 && diffInDays < 14) return "1 week";
else if (diffInDays >= 14 && diffInDays < 30) return Math.floor(diffInDays / 7) + " weeks";
var diffInMonths = (d1M + 12 * d1Y) - (d2M + 12 * d2Y);
if (diffInMonths <= 1) return "1 month";
else if (diffInMonths < 12) return diffInMonths + " months";
var diffInYears = Math.floor(diffInMonths / 12);
if (diffInYears <= 1) return "1 year";
else if (diffInYears < 12) return diffInYears + " years";
}
我试着做一个几分钟:
var d1T = d1.getMinutes();
var d2T = parseInt(splitTime[1], 10);
var diffInMinutes = (d1T + 60 *d1H + 24 * d1D + 360 * d1M + 12 * d1Y) - (d2T + 60 *d2H + 24 * d2D + 360 * d2M + 12 * d2Y);
if (diffInHours <= 1) return diffInMinutes + " minutes";
但是,当我添加第二组代码时,分钟显示不正确。例如,7 分钟前上传的视频将显示为“947 分钟前”。
【问题讨论】:
-
使用像 moment.js 或 timeago 这样的库
-
但是...如何将 timeago 之类的库实现到我的脚本中以与 youtube 连接以确定视频上传了多长时间? @ArunPJohny
-
欢迎来到Stack Overflow。 “不起作用”这个短语可能意味着很多事情,在它们的各个方面都不同。它经常被过度使用,并且不会对您的问题增加太多。考虑通过描述手头的具体问题以及您的代码如何“不起作用”来改进您的帖子。谢谢!
-
它不起作用...请允许我重新措辞。当我添加第二组代码时,显示的分钟数不正确。例如,7 分钟前上传的视频将显示为“947 分钟前”@Qantas94Heavy
-
@user2998050:谢谢,这样好多了。
标签: javascript jquery youtube