【问题标题】:Negative time in PHPPHP中的负时间
【发布时间】:2014-04-07 20:04:20
【问题描述】:

我正在计算员工的工作时间,并且需要知道该员工是否有额外的工作时间,或者该员工是否工作了与其个人资料相对应的总小时数。

例如:

Day From_Hour To_Hour Hs_Worked Extra_time PHP_Return

 1    11:00   19:30   08:30       00:00     00:00
 2    11:30   19:30   08:00      -00:30     23:00
 3    11:00   19:45   08:45      -00:15     23:45
 4    11:00   19:55   08:55      +00:10     00:10

我有所有的值,但需要计算 Extra_time 并且我对正值没有问题,但是当我尝试减去我拥有的更多时间时,php 返回与前一天相同的值。

如何添加和减去只有正数或负数的时间(不包括前几天的小时数)?

【问题讨论】:

标签: php date datetime time date-math


【解决方案1】:
$start = DateTime::createFromFormat('H:i', '11:30');
$start->add(new DateInterval('PT8H30M'));
$end   = DateTime::createFromFormat('H:i', '19:30');
$diff = $start->diff($end);
echo $diff->format('%r%H:%I');

Demo

这只是将开始时间加上 8 1/2 小时,然后得到与结束时间的差。

【讨论】:

    猜你喜欢
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-25
    • 1970-01-01
    • 2014-06-07
    相关资源
    最近更新 更多