0

重複の可能性:
相対時間を計算するにはどうすればよいですか?

2 日、2 か月、1 年などを示します。

どうやってするの?

4

2 に答える 2

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 日よりも細かい解像度が必要な場合 (および の"1 month"代わりに許可する"1 months"場合)、準備完了です。

除算の不正確さについてはあまり心配しません (たとえば、平均的な月は約 30.44 日です)。

于 2009-10-06T11:31:32.723 に答える
-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";
}
于 2009-10-06T11:39:51.693 に答える