Я пытаюсь показать разницу в днях и месяцах между 2 датамиРазница в Великобритании Даты
$date1 = $start;
$date2 = $end;
$diff = abs(strtotime($date2) - strtotime($date1));
$years = floor($diff/(365*60*60*24));
$months = floor(($diff - $years * 365*60*60*24)/(30*60*60*24));
$days = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24)/ (60*60*24));
printf("%d years, %d months, %d days\n", $years, $months, $days);
Однако это показывает, как 0 years, 0 months, 0 days
Даты в $start
и $end
в формате DD/MM/YYYY
@Prafulla кто этот комментарий для? – Shaun
Ваш вход имеет неправильный формат. Вы должны использовать другой формат или 'DateTime :: createFromFormat'. Использование объекта DateTime делает ваш код еще проще, и вы можете просто использовать 'DateTime :: diff()' $ d1 = DateTime :: createFromFormat ("d/m/Y", $ date1); $ d2 = DateTime :: createFromFormat ("d/m/Y", $ date2); $ span = $ d1-> diff ($ d2); printf ("% d лет,% d месяцев,% d дней \ n", $ span-> y, $ span-> m, $ span-> d); – Philipp
@shaun, на самом деле я комментирую derenir, который удалил свой комментарий – Prafulla