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

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

<?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); // Количество дней нужно округлить в меньшую сторону, // чтобы узнать точное количество прошедших дней // 86400 - количество секунд в 1 дней (60 * 60 * 24) $days = floor($seconds / 86400); echo $days;//3

Функция countDaysBetweenDates

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

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

Категории

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

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

Комментарии