如何使用PHP将一个日期减去另一个日期

mee*_*shi 4 php

我想使用php将一个日期减去另一个日期,并以天 - 小时 - 分 - 秒格式显示结果.我是怎么用ph​​p做的.我尝试使用时间戳,但它没有给出正确的值.请给出建议

例如:从2012-04-27 19:30:56到2012-04-27 19:37:56

我用这个代码

if(strtotime($history['datetimestamp']) > strtotime($lasttime)) {

                 $totalelapsed1 = (strtotime($history['datetimestamp'])-strtotime($lasttime)); 




                     if($totalelapsed1 > 60 ) {
                         $sec = $totalelapsed1%60;
                         $min = round($totalelapsed1/60 , 0);

                         $minute = $min + $minute;
                         $second = $sec + $second;

                        // echo $min. " min " .$sec." sec";

                     } else {
                         //echo "0 min " . $totalelapsed1." sec";

                         $minute = 0 + $minute;
                         $second = $totalelapsed1 + $second;

                    }



                } else {
                     $minute = 0 + $minute;
                     $second = 0 + $second;
                    // echo "0 min 0 sec";
                }
Run Code Online (Sandbox Code Playgroud)

Jav*_*der 10

如何减去两个日期和时间来获得差异VolkerK:

你必须这样使用: -

<?php

//$now = new DateTime(); // current date/time
$now = new DateTime("2010-07-28 01:11:50");
$ref = new DateTime("2010-07-30 05:56:40");
$diff = $now->diff($ref);
printf('%d days, %d hours, %d minutes', $diff->d, $diff->h, $diff->i);
prints 2 days, 4 hours, 44 minutes
Run Code Online (Sandbox Code Playgroud)

http://docs.php.net/datetime.diff

编辑:但您也可以将问题更多地转移到数据库端,例如通过在表中存储过期日期/时间然后执行类似的查询... WHERE key='7gedufgweufg' AND expires<Now() 许多rdbms对日期/时间算法有合理/良好的支持.

链接网址: - 如何减去两个日期和时间以获得差异

http://www.webpronews.com/calculating-the-difference-between-two-dates-using-php-2005-11


And*_*all 5

我建议使用DateTime和DateInterval对象.

$date1 = new DateTime("2007-03-24");
$date2 = new DateTime("2009-06-26");
$interval = $date1->diff($date2);
echo "days difference ".$interval->d." days "; 
Run Code Online (Sandbox Code Playgroud)

阅读更多php DateTime :: diff手册