Arhn - архитектура программирования

Проблема с датами [первое число месяца] php и Carbon

У меня проблема со сравнением дат. Когда я хочу знать, находится ли дата (дата php по умолчанию) между двумя датами Carbon. Я получаю разницу в первый день месяца.

$date = date("2017-05-01");
    $date2 = date("2017-05-31");
    $since = Carbon::now()->firstOfMonth();
    $to = Carbon::now()->lastOfMonth();//->subDay();//$now->lastOfMonth();
    $this->info('since '.$since);
    $this->info('to '.$to);
    $this->info('date '.$date);
    $this->info('date2 '.$date2);
    $this->info("-------------------");
    if($date>= $since && $date <= $to ){
        $this->info('date in');
    }else{
        $this->info('date out');
    }
    if($date2>= $since && $date2 <= $to ){
        $this->info('date2 in');
    }else{
        $this->info('date2 out');
    }

Результат:

since 2017-05-01 00:00:00
to 2017-05-31 00:00:00
date 2017-05-01
date2 2017-05-31
-------------------
date out
date2 in

Я ожидаю, что вывод $date будет «датой». Что случилось?


Ответы:


1

Вы сравниваете разные типы переменных между $date, $since и $to, поэтому результат получается странным. Если вы запустите это:

       dd($date, $since, $to); 

Вы увидите, что $date — это строка, а два других — объекты.

Вы должны сравнить их метку времени:

        $date = strtotime("2017-05-01");
        $date2 = strtotime("2017-05-31");
        $since = Carbon::now()->firstOfMonth()->timestamp;
        $to = Carbon::now()->lastOfMonth()->timestamp;

Также время по Гринвичу сейчас в июне, поэтому ваша программа также выводит «дата истекла».

01.06.2017
  • Спасибо! Я сделал это таким образом 01.06.2017
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..