php carbon сравнение дат
Laravel Carbon Date Разница между двумя датами
У меня есть поле в моей БД, которое имеет метку времени с использованием момента js. Результат примерно такой.
Но когда я возвращаю colum create_at из db, массив задается так:
Так, как я могу взять две даты столбца в формате, который может понять углерод? Я хочу, чтобы столбец «starttime» сравнивался с «creation_at». Это достижимо? Вот мой код до сих пор:
Но это дает мне ошибку:
Также, как я могу дать массив углерода.
Итак, наконец, вот что я попробовал:
Но когда я обновляю страницу, значение меняется в считанные секунды. и если добавляется другая запись, она складывается снова.
Решение
Вам либо нужно получить один результат,
Или, если вы хотите, чтобы это было для каждой строки, вам пришлось бы перебирать их и делать то же самое
Другая вещь, которую вы могли бы сделать, это установить на модель Clean аксессуар, чтобы помочь вам с этим
Кроме того, если вы добавите в свою модель следующее, Eloquent автоматически проанализирует строки в объектах Carbon, так что вы можете пропустить необходимость Carbon :: parse () в вашем коде.
Другие решения
Как вы можете прочитать из комментариев внутри кода, поместите все столбцы, которые должны быть преобразованы в даты, внутри, это поможет вам легче выполнять манипуляции с датами.
РЕДАКТИРОВАТЬ 1:
Тогда вы можете сравнить, как это:
РЕДАКТИРОВАТЬ 2:
Carbon — простой и функциональный инструмент PHP для работы с датой и временем
Дата публикации: 2018-05-14
От автора: так сложилось, что дата и время повсеместно используются практически на каждом сайте в интернете, причем не просто для отображения на экран, дата и время, как правило, входят в состав различных логических преобразований для формирования контента. Поэтому в данном уроке мы с Вами рассмотрим замечательный инструмент по работе с вышеуказанной информацией под названием Carbon.
Как Вы знаете, в структуре языка PHP, есть довольно функциональный класс, для работы с датой и временем, под названием DateTime. Который отлично справляется с типовыми задачами, но порой его функционала все же не достаточно. То есть хотелось бы иметь в распоряжении больше методов, которые добавляют удобства и легкости в работе с датой и временем. Как раз эту проблему и решает расширение под названием Carbon. По сути – это обычный класс, который расширяет функционал вышеуказанного класса, добавляя к нему множество интересных методов по созданию и преобразованию даты и времени. Официальный сайт, указанного инструмента Вы найдет по ссылке.
Для установки библиотеки с использованием инструмента Composer, достаточно выполнить команду:
Бесплатный курс по PHP программированию
Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC
В курсе 39 уроков | 15 часов видео | исходники для каждого урока
Простая настройка времени в Laravel и PHP с помощью Carbon
Работа с датой и временем в PHP – не самая простая и понятная задача. Тут приходится иметь дело с strtotime, сталкиваться с проблемами форматирования, сложными вычислениями и т.п.
Пакет под названием Carbon сделает управление датой/временем в PHP намного проще, а код – более читабельным и простым в поддержке.
Carbon – это пакет, разработанный Брайаном Несбитом, расширяющий PHP класс DateTime. Он предоставляет удобные функции для работы с датами в PHP, в частности, такие вещи, как:
Все вышеперечисленное привело к созданию очень полезного пакета, который упрощает работу со временем в PHP.
Установка Carbon
Чтобы использовать Carbon, нужно импортировать его из пространства имен Carbon. К счастью, Carbon уже включен в Laravel, потому нам не придется добавлять его через Composer.
Чтобы импортировать Carbon, используйте:
После импорта можно попробовать этот пакет в работе.
Определение даты/времени
Тонкий контроль дат
Кроме быстрых способов определения даты/времени, Carbon также позволяет нам создавать дату/время на основе определенного количества аргументов.
Эти аргументы очень полезны, если ваши данные о дате или времени находятся в формате, который обычно не распознается Carbon. Если вы передадите значение null для любого из этих атрибутов, по умолчанию будет установлено текущее значение.
Управление датой/временем
Определение даты и времени – не единственная задача, которую нужно выполнять при работе с датами. Вам также часто придется изменять дату или время: например, при настройке пробного периода для пользователя нужно сделать так, чтобы он автоматически истек через определенное время. Предположим, чтобы настроить 30-дневный пробный период, мы можем использовать функции сложения и вычитания.
В документации Carbon вы найдете другие примеры использования методов add() и sub():
Методы получения и изменения значения
Методы получения и изменения значения (getters и setters) также позволяют быстро управлять или извлекать данные о дате и времени.
$dt = Carbon::now();
// получение данных
$dt->year = 2015;
$dt->month = 04;
$dt->day = 21;
$dt->hour = 22;
$dt->minute = 32;
$dt->second = 5;
// настройка данных
var_dump($dt->year);
var_dump($dt->month);
var_dump($dt->day);
var_dump($dt->hour);
var_dump($dt->second);
var_dump($dt->dayOfWeek);
var_dump($dt->dayOfYear);
var_dump($dt->weekOfMonth);
var_dump($dt->daysInMonth);
Сеттеры также можно объединить в единую строку:
$dt = Carbon::now();
$dt->year(1975)->month(5)->day(21)->hour(22)->minute(32)->second(5)->toDateTimeString();
$dt->setDate(1975, 5, 21)->setTime(22, 32, 5)->toDateTimeString();
$dt->setDateTime(1975, 5, 21, 22, 32, 5)->toDateTimeString();
Форматирование даты/времени
Относительное время
Carbon позволяет отображать относительное время с помощью методов diff().
Предположим, у нас есть блог, и мы хотим показать, что публикация была добавлена 3 часа назад. Мы могли бы сделать это с помощью этих методов.
Определение разницы
Эти методы позволяют вычислить разницу во времени:
Отображение разницы
Относительное время может быть более полезным для читателей, чем точная дата или метка времени.
Например, вместо того, чтобы отображать точное время публикации (допустим, 8:12), мы покажем посетителям блога, что публикация появилась 3 часа назад.
Метод diffForHumans() используется для вычисления разницы, а также ее преобразования в удобочитаемый формат.
Вот примеры его использования:
Заключение
Carbon умеет еще много всего. Обязательно почитайте официальную документацию Carbon. Надеемся, этот пакет упростит вашу работу с датами и временем в PHP и ускорит разработку вашего приложения.