如何在PHP中实现像SO这样的“成员”间隔?

时间:2009-10-06 11:13:35

标签: php relative-date

  

可能重复:
  How do I calculate relative time?

显示2天,2个月,1年等等。

怎么做?

2 个答案:

答案 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";
}