PHP倒计时从设定的日期时间开始48小时

时间:2012-11-20 13:14:52

标签: php datetime

我正在寻找在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;

2 个答案:

答案 0 :(得分: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,您可以将时间转换为this answer中所述的unix纪元时间戳。

答案 1 :(得分: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";
}