这里是我有两次时间的情景,因为我只有24小时格式的datetime
部分时间
$start_time = "23:00:00";
$end_time = "07:00:00";
如果start_time的小时部分大于$ end_time的小时,我如何计算持续时间。
答案 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');