我们如何能够在“H:i:s”时间格式中获得时间差异作为给定方案?

时间:2017-03-28 10:58:48

标签: php time

这里是我有两次时间的情景,因为我只有24小时格式的datetime部分时间

$start_time = "23:00:00";
$end_time = "07:00:00";

如果start_time的小时部分大于$ end_time的小时,我如何计算持续时间。

1 个答案:

答案 0 :(得分:1)

我只想创建一个if,如果开始时间更长,你必须先计算24h(base_time)减去开始时间。

$start_time = "23:00:00";
$end_time = "07:00:00";
$base_time = "24:00:00";

if ($start_time>$end_time) {
 $time = $base_time-$start_time+$end_time;
} else {
 $time = $start_time-$end_time;
}

如果您还提供了日期格式,或者您也可以查看 here

据我所知,DateTime的方式只有日期才有可能。所以你可以在前面添加一个伪日期......然后使用diff

$start_time = "23:00:00";
$end_time = "07:00:00";
$st = new DateTime("0000-00-00".$start_time);
$et = new DateTime("0000-00-01".$end_time);

$interval = $st->diff($et);
$time = $interval->format('%H:%I:%S');