PHP 取两个日期时间型变量的完整时间间隔(秒、分钟、天)

通过 date_diff() 取两个时间的间隔时,会返回一个DateInterval变量,但DateInterval变量不能直接返回总间隔。参考网络内容后,我特意写了一个函数直接获得两个时间的总间隔。

function get_interval($time1, $time2, $type) //time2-time1
{
    $reference = new DateTimeImmutable;
    $endTime = $reference->add(date_diff($time1, $time2));
    $second = $endTime->getTimestamp() - $reference->getTimestamp();
    if ($type == 'seconds')
        return $second;
    if ($type == 'minutes')
        return $second / 60;
    if ($type == 'hours')
        return $second / 3600;
    if ($type == 'days')
        return $second / 86400;
}
echo  get_interval(new DateTime('now'), date_create('2024-1-1 00:01:20'),'minutes');//会返回后者相距前者的总分钟数(小数)。

返回值为相隔的时间单位。如果time2比time1早,会返回负数。

欢迎来到Yari的网站:yar2001 » PHP 取两个日期时间型变量的完整时间间隔(秒、分钟、天)