Разница между двумя датами, результат в годах и днях, а не в месяце в php

Мне нужны различия между двумя результатами дат в годах и днях, а не в месяце.

Я попробовал, как показано ниже


$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 день

Может ли кто-нибудь помочь в этом?

Я пробовал много способов, но никто не помог

Этот вопрос похож на: Нахождение количества дней между двумя датами. Если вы считаете, что это другое, отредактируйте вопрос, поясните, чем он отличается и/или как ответы на этот вопрос не помогают решить вашу проблему. (Я предполагаю, что этот вопрос касается PHP)

Luuk 02.07.2024 13:26

Проблема в том, что «год» — это не фиксированное количество дней. Итак, сначала получите разницу в полных годах от даты начала, затем прибавьте ее к дате начала и, наконец, найдите оставшееся количество дней до даты окончания.

Gustav 02.07.2024 15:28

Привет @luuk, Спасибо за ваши комментарии. На самом деле то, что я ищу, не похоже на вашу ссылку. Мне нужен результат по общему году и дням.

Ohidul Islam 02.07.2024 19:07

@OhidulIslam Пожалуйста, отредактируйте свой вопрос, чтобы показать/объяснить математически, почему разница этих двух дат составляет 1 год и 101 день. В зависимости от того, как вы выполняете расчеты, разница может составлять 1 год и 99 дней, 100 дней или 101 день. Также добавьте другие даты выборки и желаемую рассчитанную разницу. Эти другие даты должны обрабатывать особые случаи, такие как високосные годы и другие проблемные диапазоны дат.

Progman 02.07.2024 19:22
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
4
55
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Наконец я сделал это. Я получил ожидаемый результат по коду ниже

$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 является объединение контента, если у вас есть какие-либо уникальные идеи, которыми вы можете поделиться по этой теме, переместите свой контент в цель для обмана.

mickmackusa 02.07.2024 22:58

Другие вопросы по теме