Количество часов между датами (PHP)

Чтобы получить количество часов между двумя датами, необходимо обе даты преобразовать в timestamp, вычислить количество секунд между ними, затем результат преобразовать в часы, разделив количество секунд на 3600 (количество секунд в одном часе).

<?php // Первая дата $d1 = '2018-07-18 15:34:12'; // Вторая дата $d2 = '2018-07-21 18:21:32'; // timestamp первой даты $d1_ts = strtotime($d1); // timestamp второй даты $d2_ts = strtotime($d2); // Количество секунд // Функция abs нужна, чтобы не проверять какая из двух дат больше $seconds = abs($d1_ts - $d2_ts); // Количество часов нужно округлить в меньшую сторону, // чтобы узнать точное количество прошедших часов // 3600 - количество секунд в 1 часе $hours = floor($seconds / 3600); echo $hours;//74

Функция countHoursBetweenDates

Лучшим решением, вычисления количества часов между двумя датами, будет реализовать все в виде функции int countHoursBetweenDates(string $d1, string $d2), которая будет принимать два параметра $d1 и $d2, первая и вторая даты соответственно, и возвращает количество часов между датами.

<?php /** * Функция считает количество часов между двумя датами * * @param string $d1 первая дата * @param string $d2 вторая дата * * @return number количество часов */ function countHoursBetweenDates($d1, $d2) { $d1_ts = strtotime($d1); $d2_ts = strtotime($d2); $seconds = abs($d1_ts - $d2_ts); return floor($seconds / 3600); } echo countHoursBetweenDates('2018-07-18 15:34:12', '2018-07-21 18:21:32');//74

Категории

ПрограммированиеPHPДата и время в PHPДата и время

Читайте также

Комментарии