Решением может быть использование strtotime
для преобразования ваших дат / времени в метки времени:
$first_str = '8:30';
$first_ts = strtotime($first_str);
$second_str = '10:00';
$second_ts = strtotime($second_str);
А затем сделайте разницу:
$difference_seconds = abs($second_ts - $first_ts);
И получите результат в минутах или часах:
$difference_minutes = $difference_seconds / 60;
$difference_hours = $difference_minutes / 60;
var_dump($difference_minutes, $difference_hours);
Вы получите:
int 90
float 1.5
Теперь вам нужно выяснить, как это отобразить; -)
(изменить, подумав немного больше)
Можно отобразить разницу, используя функцию date ; что-то вроде этого должно сделать:
date_default_timezone_set('UTC');
$date = date('H:i', $difference_seconds);
var_dump($date);
И я получаю:
string '01:30' (length=5)
Обратите внимание, что в моей системе мне пришлось использовать date_default_timezone_set
, чтобы установить часовой пояс в формате UTC, иначе я получал "02:30" вместо "01:30" - - вероятно, потому что я во Франции, а FR - это язык моей системы ...