2

その日のすべてのユーザー制限をリセットする深夜に実行されるcronジョブがあります。ユーザーに向けて何かを表示したいYour limits reset in 1 hour 14 minutes。基本的には深夜(サーバー時間)までのカウントダウンです。

現時点では、これを使用して深夜を検索しています。

strtotime('tomorrow 00:00:00');

真夜中がロールオーバーしたときのタイムスタンプを返しますが、ユーザーフレンドリーなカウントダウンを表示する方法がわかりません。このためのPHPライブラリはありますか、それともライブラリがなくてもこれは非常に簡単ですか?

4

3 に答える 3

5

単にこれはあなたに左分を与えます。

$x = time();
$y = strtotime('tomorrow 00:00:00');
$result = floor(($y - $x) / 60);

ただし、フィルタリングする必要があります$result

if ($result < 60) {
    printf("Your limits rest in %d minutes", $result % 60);
} else if ($result >= 60) {
    printf("Your limits rest in %d hours %d minutes", floor($result / 60), $result % 60);
}
于 2013-01-30T21:30:28.020 に答える
3

大まかな見積もりを探しているので、秒を省略できます。

$seconds = strtotime('tomorrow 00:00:00') - now();
$hours = $seconds % 3600;
$seconds = $seconds - $hours * 3600;
$minutes = $seconds % 60;
$seconds = $seconds - $minutes *60;

echo "Your limit will reset in $hours hours, $minutes minutes, $seconds seconds.";
于 2013-01-30T21:34:22.460 に答える
2

それは非常に簡単で、ほんの少しの数学と、当時と現在の秒数の違いを見つけることができます。

// find the difference in seconds between then and now
$seconds = strtotime('tomorrow 00:00:00') - time(); 
$hours = floor($seconds / 60 / 60);   // calculate number of hours
$minutes = floor($seconds / 60) % 60; // and how many minutes is that?
echo "Your limits rest in $hours hours $minutes minutes";
于 2013-01-30T21:23:22.777 に答える