YouMax视频上传日期

时间:2013-08-17 17:07:45

标签: jquery-plugins youtube-api

我一直在使用YouMax插件,可让您在自己的网站上嵌入自己的YouTube频道。但是,我遇到了问题,因为它以月和年显示上传的日期。我想要显示几天,几周,几个月和几年。

您可以在此处查看源代码http://jsfiddle.net/wCKKU/

我认为需要进行调整以使其按日,周,月和年计算。

function getDateDiff(timestamp) {
if (null == timestamp || timestamp == "" || timestamp == "undefined") return "?";
var splitDate = ((timestamp.toString().split('T'))[0]).split('-');
var d1 = new Date();
var d1Y = d1.getFullYear();
var d2Y = parseInt(splitDate[0], 10);
var d1M = d1.getMonth();
var d2M = parseInt(splitDate[1], 10);
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"
}

1 个答案:

答案 0 :(得分:0)

您可以通过函数中间的一小段代码修改插件:

var d2M = parseInt(splitDate[1], 10); // this line is already there
var d1D = d1.getDate();
var d2D = parseInt(splitDate[2],10);
var diffInDays = (d1D + 30 *d1M + 12 * d1Y) - (d2D + 30 *d2M + 12 *d2Y);
if (diffInDays < 2) return "1 day";
else 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); // this line is already there

请注意,这不是一种处理问题的特别优雅的方法,但它与插件已经使用的编码风格相匹配,并且至少不会破坏其他任何内容。

另外,作为旁注,如果您正在修改插件代码,则需要同时修复其中的错误。获得当前月份应如下所示:

var d1M = d1.getMonth() + 1;

这是因为在Javascript中,getMonth()函数返回基于零的索引上的月份,除非将其切换为基于一的索引,否则数学将不可靠。