Не удалось найти символ разделения. Отсутствуют данные.

Я работаю с Laravel 5.8, и я хотел показать всплывающее сообщение, если временная метка UNIX текущей даты равна определенной временной метке Unix для всплывающего окна.

Итак, чтобы сделать это, я добавил это в Контроллер:

      $date1= $popup->datep; // returns 1636403400

$date1 = Carbon::createFromFormat('Y-m-d H:i:s', $date1);

dd($date1);

Но вместо того, чтобы получить результат $date1, Я получаю эту ошибку:

Не удалось найти символ разделения. Отсутствуют данные.

Так что здесь не так? Как я могу решить эту проблему?

2 ответа

Решение

Что касается Carbon Docs:

createFromFormat() - это в основном оболочка для базовой php-функции DateTime::createFromFormat.

Это означает, что ваш второй параметр должен быть допустимым форматом даты / времени, а не меткой времени.

В DateTime::create документы:

$datetime
Строка, представляющая время.

Вместо этого вам нужно использовать createFromTimestamp инстанциатор.

      $date1 = Carbon::createFromTimestamp($date1);

Вы указываете формат, который явно не является меткой времени unix. Используйте метод для отметки времени.

      $date = Carbon::createFromTimestamp($popup->datep);

В котором, если вы хотите сравнить это с одной и той же датой, вы должны сделать следующее. Я не предполагаю, что вы хотите сравнивать его по часам или секундам, они почти никогда не совпадут.

      $date->startOfDay()->eq(now()->startOfDay());
Другие вопросы по тегам