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 回答