我在标题的措辞上苦苦挣扎,但基本上我想要一个可以提供两个日期的函数,它会输出如下内容:如果结果是 15 天,则输出“2w”,如果结果为 13 个月,则输出“1y”,如果结果为“1m”,则输出如下是 4 或 5 周。最好减少到一小时……但最少 1 天。
我发现了一个类似的 SO 问题,但它是针对 PHP 的,无论如何都不完整:如何计算两天之间的差异作为格式化字符串?
我在标题的措辞上苦苦挣扎,但基本上我想要一个可以提供两个日期的函数,它会输出如下内容:如果结果是 15 天,则输出“2w”,如果结果为 13 个月,则输出“1y”,如果结果为“1m”,则输出如下是 4 或 5 周。最好减少到一小时……但最少 1 天。
我发现了一个类似的 SO 问题,但它是针对 PHP 的,无论如何都不完整:如何计算两天之间的差异作为格式化字符串?
有许多 javascript 日期库可以满足您的所有需求,甚至更多。这是使用XDate的示例
<div id="result"><div/>
var now = new XDate();
var then = new XDate(2013, 04, 01, 0, 0, 0, 0);
document.getElementById("result").textContent = now.diffWeeks(then).toFixed(1) + " Weeks";
可用的jsfiddle
<div id="result"><div/>
var then = moment("Dec 25, 1995");
document.getElementById("result").textContent = moment(then, "YYYYMMDD").fromNow();
也可以在jsfiddle上使用