答案 0 :(得分:2)
我还没有看到代码库,但我认为它会像(伪代码,因为我对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天),因为它只是一个近似值。
答案 1 :(得分:-1)
这是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";
}