PHP的2倍之间的差异

时间:2017-05-17 08:10:01

标签: php datetime dateinterval

您好我知道您可能认为他们中的许多人可能已经提出了这个问题,但情况却截然不同。

由于我每月计算一次劳动总换班时间,因此小时数将超过24小时。我通过DateInterval实现了这一点。

现在我有2次想要在php中获得差异。

$workedHours        = '78:25:10';
$miscSpentHours     = '02:26:11';

$totalWorkedHours = $workedHours - $miscSpentHours; // Must Result - 75:59:59

我已经使用了sub,diff,strtotime但没有正常使用。我在转换时将其转换为适当的日期类型。

任何帮助真的很感激。感谢。

3 个答案:

答案 0 :(得分:2)

您可以将其转换为秒,然后进行减法,然后将结果传回。

答案 1 :(得分:0)

我没有测试过这个。但这应该会让你朝着正确的方向前进

<?php

$hours = 70;//enter number of hours
$zero    = new DateTime('@0');
$offset  = new DateTime('@' . $hours * 3600);//convert to minutes
$diff    = $zero->diff($offset);


$formattedHours = $diff->format('%a Days, %h Hours, %i Minutes');//get format in days hours and minutes

$start_date = new DateTime($formattedHours);//pass in contruct
$since_start = $start_date->diff(new DateTime('02:26:11'));//do difference
echo $since_start->days.' days total<br>';
echo $since_start->y.' years<br>';
echo $since_start->m.' months<br>';
echo $since_start->d.' days<br>';
echo $since_start->h.' hours<br>';
echo $since_start->i.' minutes<br>';
echo $since_start->s.' seconds<br>';

?>

答案 2 :(得分:0)

  1. 检查我的函数TimeToSec()以将HH:MM:SS转换为秒
  2. 减去
  3. 将秒转换回HH:MM:SS(选中this answer)。