Невозможно получить разницу дат между двумя датами в php

Итак, у меня есть следующий код, который я нашел где-то еще в SO, чтобы узнать разницу между двумя датами.

 $datetime1 = new DateTime('2018-07-11');
 $datetime2 = new DateTime('2018-07-13');
 $diff = $datetime1->diff($datetime2);

У меня нет проблем с этим, потому что он работает хорошо, но когда я пытаюсь применить его самостоятельно, не вижу разницы, или разница равна 0.

 $datetime1 = new DateTime($date_today);//format is 2018-07-01, string format
 $datetime2 = new DateTime($date);//format is 2018-07-31, string format
 $diff= $datetime1->diff($datetime2);

 log::info($diff->format('%d'));

Выход для этого - 0, который должен быть 30. Вы можете мне помочь с этим, пожалуйста?

Этот 2018-07-0, не являющийся действительной датой, может быть частью проблемы или просто плохим комментарием.

RiggsFolly 31.07.2018 15:53

Какая дата у этого 2018-07-0?

Amit Chigadani 31.07.2018 15:54

Нет, DateTime заменит 2018-07-0 на 2018-06-30

AymDev 31.07.2018 15:55

И где в состоянии календаря вы когда-нибудь видели нулевую часть месяца?

RiggsFolly 31.07.2018 15:55

@RiggsFolly Это сразу после 31 февраля, и PHP также с радостью перенесет это в следующий месяц.

iainn 31.07.2018 15:59

@RiggsFolly Это просто опечатка. Должен быть 01, думал уже редактировал.

Eem Jee 31.07.2018 16:00
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать 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
6
35
1

Ответы 1

log::info($diff->format('%a'));

это решение

Смотрите здесь в песочнице php: http://sandbox.onlinephpfunctions.com/code/32bcea357af442f92a1875e1669af6f01973df6d

$diff - это объект DateInterval, который имеет другие параметры DateInterval :: format.

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