0
目前,下面的代码仅在一个月或更短的时间内获得与“1个月”相同的任何日期差异。我想要做的是如果差异小于一个月,输出多少天 - “XX天”。然后如果不到一天,输出多少个小时 - “XX小时”。需要扩展DateDiff以获取更多详细信息
任何帮助,将不胜感激。谢谢。
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"
}
不幸的是我在这方面缺乏知识的使用,我不能像这样一个完全不同的编码路线走。这会导致我不得不更改其他代码区域,我不知道从哪里开始。我目前只修改原始代码。 – BZCS
好的。但是,除非你只是将一个时间戳传递给一个函数,否则应该只是在函数内部替换内容。但是我会回复你使用的相同功能,但有时可能会在某些时候... –
像'24 * 60 * 60'这样的东西很危险:因为夏令时有些日子可能会持续23小时,其他的25日。在这种情况下,我不相信你会需要100%的准确性,但请记住! – Qualcuno