可能重复:
我如何计算相对时间?
它显示 2 天、2 个月、1 年等。
怎么做?
我还没有看到代码库,但我认为它会是这样的(伪代码,因为我对 PHP 的了解与对白犀牛的交配习惯一样多):
string duration (n): // days
if n >= 365 return str(int(n/365)) + " years"
if n >= 30 return str(int(n/30)) + " months"
if n >= 7 return str(int(n/7)) + " weeks"
return str(int(n)) + " days"
如果您想要比一天更精细的分辨率(并允许"1 month"
代替"1 months"
),请调整传入的值和分母,您就可以开始了。
我不会太担心除法的不准确性(例如,平均每月大约有 30.44 天),因为它只是一个近似值。
这是 Pax 伪代码的 PHP 版本:
function duration ($n){
if ($n > 365) return ($n/365)." years";
if ($n > 30) return ($n/30)." months";
if ($n > 7) return ($n/7)." weeks";
return $n." days";
}