我有一个在午夜运行的cron作业,它会重置当天的所有用户限制。我希望向用户显示Your limits reset in 1 hour 14 minutes
的内容。基本上倒计时到午夜(服务器时间)。
目前我正在使用它来寻找午夜:
strtotime('tomorrow 00:00:00');
返回午夜翻身的时间戳,但我不知道如何显示用户友好的倒计时。有没有一个PHP库,如果没有库,这很容易吗?
答案 0 :(得分: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);
}
答案 1 :(得分: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.";
答案 2 :(得分: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";