Мне нужны различия между двумя результатами дат в годах и днях, а не в месяце.
Я попробовал, как показано ниже
$date1 = new DateTime("2023-01-01");
$date2 = new DateTime("2024-04-10");
$difference = date_diff($date1, $date2);
$years = $difference->y;
$months = $difference->m;
$days = $difference->d;
echo "$years Years";
echo "<br />";
echo "$months month";
echo "<br />";
echo "$days days";
и получил результат как
1 год 3 месяца 9 дней
мне нужен результат как
1 год 101 день
Может ли кто-нибудь помочь в этом?
Я пробовал много способов, но никто не помог
Проблема в том, что «год» — это не фиксированное количество дней. Итак, сначала получите разницу в полных годах от даты начала, затем прибавьте ее к дате начала и, наконец, найдите оставшееся количество дней до даты окончания.
Привет @luuk, Спасибо за ваши комментарии. На самом деле то, что я ищу, не похоже на вашу ссылку. Мне нужен результат по общему году и дням.
@OhidulIslam Пожалуйста, отредактируйте свой вопрос, чтобы показать/объяснить математически, почему разница этих двух дат составляет 1 год и 101 день. В зависимости от того, как вы выполняете расчеты, разница может составлять 1 год и 99 дней, 100 дней или 101 день. Также добавьте другие даты выборки и желаемую рассчитанную разницу. Эти другие даты должны обрабатывать особые случаи, такие как високосные годы и другие проблемные диапазоны дат.
Наконец я сделал это. Я получил ожидаемый результат по коду ниже
$date1 = new DateTime("2023-01-01");
$date2 = new DateTime("2024-04-10");
$difference = date_diff($date1, $date2);
$years = $difference->y;
// Calculate total days without including the years
$date1_copy = clone $date1;
$date1_copy->modify("+$years years");
$daysDifference = ($date1_copy->diff($date2)->days)+1;
echo "$years Years";
echo "<br />";
echo "$daysDifference Days";
Поскольку целью Stack Overflow является объединение контента, если у вас есть какие-либо уникальные идеи, которыми вы можете поделиться по этой теме, переместите свой контент в цель для обмана.
Этот вопрос похож на: Нахождение количества дней между двумя датами. Если вы считаете, что это другое, отредактируйте вопрос, поясните, чем он отличается и/или как ответы на этот вопрос не помогают решить вашу проблему. (Я предполагаю, что этот вопрос касается PHP)