Php计算从PM到AM的经过的小时数

Cyb*_*kie 4 php time datetime

时间令人困惑......如何计算PHP中从PM到AM的时间?

例如22:00:00 (10pm),02:00:00 (02am)应该给予04 hours过去.而是我的代码返回-08 hours

function hours_elapsed() 
{           
    $timestart = strtotime("22:00:00");
    $timestop = strtotime("02:00:00"); 

    $time_diff = $timestop - $timestart; //time difference

    return gmdate("h", $total_hours);
}
Run Code Online (Sandbox Code Playgroud)

很明显,代码以24小时格式计算,所以它当然会返回-08但是如何在没有24小时约束的情况下获得时间...当它通过午夜标记时?

Ble*_*der 8

-8小时是4几小时.12如果数字是负数,只需添加:

$time_diff = $timestop - $timestart; //time difference

if ($time_diff < 0) {
  $time_diff += 12;
}
Run Code Online (Sandbox Code Playgroud)

但是,如果您的日期相隔超过一天,这对您没有帮助.您还需要指定日期(如当月的日期),以告诉PHP这些时间是不同的.