как вычесть от даты и времени дату и время? Laravel, Carbon
к примеру есть
date_start1 = 2022-06-08 22:41:00
date_start2 = 2020-02-08 00:50:00
Нужно узнать сколько времени осталось до date_start1 и date_start2
в данном примере date_start2 уже просрочен
//вот так что-то не хочет
$diff = Carbon::parse('2020-06-09 08:20:00')
->diff(Carbon::now())
->format('Y-m-d H:i') //return string 'Y-m-d H:i'
нужно чтобы вернуло осталось столько то часов или 0 если просрочен
Ответы (2 шт):
Автор решения: Alexandr Revnuk
→ Ссылка
$dateStart1 = Carbon::parse('2022-06-08 22:41:00');
$dateStart2 = Carbon::parse('2022-06-08 22:41:00');
$diff1 =$dateStart1->diffInMinutes(Carbon::now());
$diff2 =$dateStart2->diffInMinutes(Carbon::now());
Вы можете юзануть вместо diffInMinutes: diffInSeconds, diffInDays, diffInHours, diffInWeeks, diffInWeeks, diffInYears или в флоатном формате каждый из перечисленных, как этот floatDiffInMinutes
Автор решения: Alex Kudrya
→ Ссылка
$dateStart1 = Carbon::parse('2022-06-08 22:41:00');
$dateStart2 = Carbon::parse('2024-02-08 00:50:00');
$now = Carbon::now(); // 2023-07-11
$diff1 = ($dateStart1 < $now) ? $dateStart1->diffInHours($now) : 0; // 9549
$diff2 = ($dateStart2 < $now) ? $dateStart2->diffInHours($now) : 0; // 0