У меня есть MySQL DB, в которой хранятся даты гарантии. Значения: Start_Date и End_Date, я пытаюсь подсчитать оставшиеся дни гарантии.
Пример:
- Счет 0001
- Гарантийный запуск (2018-12-01)
- Окончание гарантии (2019-01-11)
- Вывод: гарантия истекает через 2 дня (при условии, что действует 2019-01-09)
Попробуйте # 1 - DateTime
#date_1 = 2018-12-01 (From MySQL) - Start / PAST
#date_2 = 2019-01-11 (From MySQL) - End / FUTURE
$d1 = new DateTime($date_1);
$d2 = new DateTime($date_2);
$int = date_diff($d1, $d2);
$r = $int->format('In %a days');
Выход за 41 день
Попробуйте # 2 - Date_Create
#date_1 = 2018-12-01 (From MySQL) - Start / PAST
#date_2 = 2019-01-11 (From MySQL) - End / FUTURE
$d1 = date_create($date_1);
$d2 = date_create($date_2);
$int = date_diff($d1, $d2);
return $int->format('%a');
Выход 41
Попробуйте # 3 - SQL DATEDIFF
$data = $pdo->query("
SELECT *, DATEDIFF(start_date, end_date)
AS date_difference
FROM `warranty`
ORDER BY id
DESC
")->fetchAll();
Выход -41
Что я делаю не так? Я просто хочу посчитать количество дней, оставшихся на счету гарантии.