2012-04-13 11 views
4

time()(今後)の結果を次の5分の1に丸めるにはどうすればよいですか?PHP round time()(将来)から次の5分の倍数へ

+0

? – hakre

+1

近い将来。 –

+0

@ hakre:通常の丸め作業のように、最も近い最も近いもののオプションを忘れてしまいます。 14時06分、過去5分(14:05)、14:08、最短5分(14:10)です。元の(編集されていない)元の質問では、それは明らかに予想される電子メールの配信時間でした(これは将来必要です)。 –

答えて

29
$now = time();  
$next_five = ceil($now/300)*300; 

これはあなたに(常に大きくなったり、現在の時間に等しい)次のラウンド5分を与えるだろう。

私はこれがあなたの説明に基づいて必要と考えていると思います。

+1

OPは "nearest"を求めています。これは5分を1秒上回っても切り上げられます。 – Umbrella

+2

私は、なぜ私はコメントを追加知っている。彼が探しているものは、次のラウンド5分であり、最寄りのものではありません(彼は "自分のメールが届いたら教えてくれるスクリプト - 将来の時制)。多分私は間違っていますが、それは私が理解しているものです –

+1

あなたは正しいです、それは私を逃した。 +1 – Umbrella

14

試してみてください。

$time = round(time()/300) * 300; 
+1

OPは「最も近い」と尋ねるが、その文脈は未来として記述されている。 – Umbrella

+2

この解決策は、近くに有効です。近い将来は 'round'を、近い将来は' ceil'を使います。私たちがここにいる間、「床」は最後に働くはずです。 –

5

は、この機能を試してみてください:

将来または過去に最も近い
function blockMinutesRound($hour, $minutes = '5', $format = "H:i") { 
    $seconds = strtotime($hour); 
    $rounded = round($seconds/($minutes * 60)) * ($minutes * 60); 
    return date($format, $rounded); 
} 

//call 
blockMinutesRound('20:11');// return 20:10