【发布时间】:2012-08-17 17:42:52
【问题描述】:
我到处都在寻找一个简单的答案,但我无法找到一个可行或满足我要求的解决方案。
我正在循环数据,看起来类似于:
Array
(
[0] => 4c36fd909b37208b
[1] => event:
[2] => start_scan
[3] => 2012-08-17 12:01:15
)
Array
(
[0] => 4c36fd909b37208b
[1] => sysaction:
[2] => lower_device
[3] => 2012-08-17 12:01:19
)
Array
(
[0] => 4c36fd909b37208b
[1] => event:
[2] => how_to_use_displayed
[3] => 2012-08-17 12:01:46
)
Array
(
[0] => 4c36fd909b37208b
[1] => event:
[2] => scan_displayed
[3] => 2012-08-17 12:01:59
)
Array
(
[0] => 4c36fd909b37208b
[1] => sysaction:
[2] => layer_1_display_on_recognition
[3] => 2012-08-17 12:02:23
)
我想计算两个日期之间的时间,结果需要采用 HH:MM:SS 格式。 在上面的示例数据中,我需要 2012-08-17 12:01:15 和 2012-08-17 12:02:23 之间的差异,应该是 00:01:08。
我尝试使用此处的代码:http://www.if-not-true-then-false.com/2010/php-calculate-real-differences-between-two-dates-or-timestamps/,但它一直返回 00:00:20
我也试过这个(第一个数组中的日期保存为 $xpTime,最后一个数组中的日期设置为 $xpEndTimeTmp):
$start = new DateTime($xpTime);
$end = new DateTime($xpEndTimeTmp);
$diff = $start->diff($end);
$xpDuration = date('H:i:s', strtotime($diff->h.':'.$diff->i.':'.$diff->s));
但这似乎也有效(它返回相同的小时、分钟和不同的秒)。
我希望有人可以帮助我,告诉我我做错了什么,或者有可以让我走上正轨的示例代码!
【问题讨论】:
-
date("H:i:m", strtotime($a) - strtotime($b)? -
@Matt:对于大于 24 小时的差异,这将失败。它只会显示 24 小时的模数。