1

是否有计算多个日期之间的总小时分钟数的功能?

我有很多次这样的:

10:00 18:00 | 15:00 23:00 | 00:00 00:00 | 08:30 16:30 | 00:00 00:00 | 16:00 19:00 | 00:00 00:00

正如你所看到的,有些可能是空的,现在我需要知道我那周工作的总小时数和分钟数。有人知道解决方案吗?

谢谢!

4

2 回答 2

1

这是一个示例解决方案,包括解析您的问题中的输入。它不使用DateTime类,而是执行一个超级简单的计算来计算总小时数。

$shifts = "10:00 18:00 | 15:00 23:00 | 00:00 00:00 | 08:30 16:30 | 00:00 00:00 | 16:00 19:00 | 00:00 00:00";
$shifts= explode('|', $shifts);

$sum = 0;    

foreach($shifts as $shift) {
    $times = explode(' ', trim($shift));
    $start = explode(':', $times[0]);
    $end = explode(':', $times[1]);

    $sum += ($end[0] - $start[0]) + ($end[1] - $start[1]) / 100 / 0.6;
}

echo $sum; // prints the result 27

我希望这会对你有所帮助。

于 2013-10-04T12:13:30.297 回答
0
// Create two new DateTime-objects...
$date1 = new DateTime('2006-04-12T12:30:00');
$date2 = new DateTime('2006-04-14T11:30:00');

// The diff-methods returns a new DateInterval-object...
$diff = $date2->diff($date1);

// Call the format method on the DateInterval-object
echo $diff->format('%d Day and %h hours');
于 2013-10-04T12:00:02.800 回答