1

我正在寻找在 PHP 中创建一个倒数计时器。当用户单击按钮时,它将当前日期和时间保存到数据库条目中,然后它应该将该条目与当前日期和时间的差异以及当差异大于 48 小时时“doSomething”。

我的问题是实际倒计时。

我尝试了以下方法,但无济于事,它只计算两个字符串的差异,而不考虑天数。不仅如此,它似乎还错误地显示了结果差异:

$d1=strtotime("2012-07-08 11:14:15");
$d2=strtotime("2012-07-09 12:14:15");
$diff = round(abs($d1 - $d2));
$cd = date("H:i:s", $diff);
echo $cd;

感谢您从 StackOverflow 帮助我 Yan.kun!下面提交的代码就是解决方案!为了以小时:分钟:秒严格显示倒计时,我将 printf() 代码替换为以下内容:

$hours = ($result->d*24)+$result->h;
$minutes = $result->i;
$seconds = $result->s;
echo $hours . ":" . $minutes . ":" . $seconds;
4

2 回答 2

2

试试这个:

$d1 = new DateTime("2012-07-08 11:14:15");
$d2 = new DateTime("2012-07-09 12:14:15");
$result = $d1->diff($d2);

printf('difference is %d day(s), %d hour(s), %d minute(s)', $result->d, $result->h, $result->i);

编辑:如果您没有可用的 PHP 5.3,您可以将您的时间转换为 unix 纪元时间戳,如本答案中所述。

于 2012-11-20T13:20:45.320 回答
0

不确定这是否是您想要的:

$d1=strtotime("2012-11-18 11:14:15");//2 days earlier
$d2=strtotime("2012-11-20 11:14:15");//today
$diff = $d2 - $d1; //difference in seconds.

$hours = $diff/60/60;//translation to minutes then to hours

echo $hours;

if($hours>48){
    echo "Script";
}
于 2012-11-20T13:31:27.987 回答