关于php:计算经过的时间

Calculating the elapsed time

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Determining elapsed time

我想知道如何计算数据库中2个日期之间的经过时间。

它们在日期/时间中保存为"EntryDate"和"ExitDate",如DD-MM-YYYY 00:00:00,我想计算两者之间的时间,例如:

01.01.2012 12.00.00和01.01.2012 13.30.00这将是1小时30分钟。

谢谢。山姆。


你可能想在mysql里面工作时使用timediff。

1
2
3
mysql> SELECT TIMEDIFF('2000:01:01 00:00:00',
->                 '2000:01:01 00:00:00.000001');
-> '-00:00:00.000001'

1
SELECT TIMESTAMPDIFF(MINUTE,'2012-01-01 12:00:00','2012-01-01 13:30:00')

这将以分钟为单位返回差异。 你可以用任何时间单位替换分钟(比如'HOUR','SECOND'等)


您可以使用

1
2
eg:
select TIMEDIFF ('2006-10-31 11:50:31' , '2006-10-31 11:50:01')

由于日期格式如下,您可以使用strtotime获取每个日期的时间戳。 然后你只需从条目中减去退出。 这会留下几秒钟的差异。 现在你可以玩这个了。


使用此论坛帖子:http://forums.devshed.com/php-development-5/calculate-remaining-day-minute-seconds-between-two-dates-538979.html

下次谷歌发布前一点点。 我们会帮助你,但你不应该滥用......


对于PHP中的实现,您需要使用date_diff函数。

1
2
3
4
5
6
7
8
9
10
11
$d_start    = new DateTime($EntryDate);
$d_end      = new DateTime($ExitDate);
$diff = $d_start->diff($d_end);

// return all data
$this->year    = $diff->format('%y');
$this->month    = $diff->format('%m');
$this->day      = $diff->format('%d');
$this->hour     = $diff->format('%h');
$this->min      = $diff->format('%i');
$this->sec      = $diff->format('%s');