【问题标题】:How to implement the "Member for " interval like SO in PHP? [duplicate]如何在 PHP 中实现类似 SO 的“Member for”间隔? [复制]
【发布时间】:2010-12-04 05:50:01
【问题描述】:

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

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

怎么做?

【问题讨论】:

标签: php relative-date


【解决方案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 天),因为它只是一个近似值。

【讨论】:

    【解决方案2】:

    这是 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";
    }
    

    【讨论】:

    • 损坏(例如缺少$,而且你忘记了(int))...
    • 你是对的 middus 谢谢,我已经更新了。
    猜你喜欢
    • 2010-12-04
    • 2010-12-04
    • 2015-08-01
    • 2017-03-10
    • 1970-01-01
    • 1970-01-01
    • 2010-12-18
    相关资源
    最近更新 更多