Intereting Posts
Могу ли я установить Laravel без использования Composer? Как заставить диалог Сохранить как при потоковой передаче вложения PDF Изменение размера изображения перед загрузкой PHP Laravel не может загрузить стороннюю библиотеку Медленная производительность при создании подписанных URL CloudFront Должен ли я бросать разные типы исключений? Как создать событие Календаря Google без напоминания / Как получить учетные записи службы для олицетворения пользователей Могу ли я искать членов класса PHP и методы с помощью поиска vim «star»? Ошибка при выполнении ассемблерного дампа (ошибка синтаксического анализа: сбой в `&: extend (.clearfix all);`) Laravel Сырой запрос paginate; необработанный запрос к красноречивому объекту Добавление / обновление настраиваемых полей после выбора снимков в окне мультимедиа (WordPress) Regex изменить формат всех атрибутов img src Проверка множественной загрузки файлов Laravel Как получить стоимость акций RealTime, используя финансирование yahoo Внедрение аналогичного / нелюбимого счетчика с php и jquery

Каков правильный способ сравнить две даты в php?

Мне нужно сравнить даты из моей базы данных с текущим днем. Этот идентификатор моего кода, красноречивый:

$posts = Post::where('date', '=', date('Ym-d'))->get(); 

Я хочу получать только сегодняшние сообщения. Зная, что поле «дата» имеет тип Date, как мне это сделать? Я попытался преобразовать date('Ym-d') в строку с помощью метода 'format', но кажется, что date('Ym-d') каким-то образом возвращает Boolean, и, таким образом, метод 'format' не может к нему применить.

Я использую это для обработки дат моей базы данных

  //Get the database date, and format it $database_date = date_format($database_date, 'Ym-d'); //Get today date or another date of you choice $today_date = new DateTime(); //Format it $today_date = date_format($today_date, 'Ym-d'); // Use strtotime() to compare the dates or DateTime::diff for more cleaner IMO $difference = strtotime($today_date) - strtotime($database_date); 

Если я получаю то, что вы хотите, вы можете использовать функцию strtotime . Он преобразует строку даты и времени, переданную ей, в временную метку Unix, которую вы можете использовать для сравнения.

Если дата с 2015-10-21 то функция вернет 1445385600 и если сегодняшняя дата с date(Ymd) равна 2015-10-31, тогда функция вернет 1446249600 чтобы вы могли легко сравнить эти два.

 $var1 = strtotime('2015-10-21'); $var2 = strtotime('2015-10-31'); 

Тогда сравнение можно сделать так, как if($var1 == $var2)