Пытаюсь отобразить дату

У меня есть этот код,

<div class = "form-group">
  <label class = "col-sm-2 control-label" for = "date-created">Date Created</label>
  <div class = "col-sm-10">
    @if (isset($post->created_at))
      <input type = "date" class = "form-control" id = "date-created" name = "created_at" value = "{{ date('d/m/Y', strtotime($post->created_at)) }}">
    @else
      <input type = "date" class = "form-control" id = "date-created" name = "created_at" placeholder = "Enter the date the blog post created">
    @endif
  </div>
</div>

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

но это было показано при рендеринге в браузере

Пытаюсь отобразить дату

Что с этим лучше всего делать?

Это может быть простая проблема, но я не могу найти простого объяснения, почему у меня это не работает.

Попробуйте изменить формат с: date('d/m/Y',... на date('d-m-Y',. stackoverflow.com/questions/40038521/…

Jose Carlos Ramos Carmenates 11.06.2018 16:49

все еще не работает ....

Fil 11.06.2018 17:08

Вы пробовали это сначала с <input type = "text"> по умолчанию, чтобы убедиться, что это просто проблема форматирования с полем type = "date" или действительно что-то не так с вашим шаблоном?

WOUNDEDStevenJones 11.06.2018 17:50
Стоит ли изучать 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 и хотите разрабатывать...
0
3
127
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Laravel поставляется с Углеродный несбот, включенным из коробки, чтобы помочь форматировать дату. Даты в laravel можно легко отформатировать так:

{{\Carbon\Carbon::parse($post->created_at)->format('d/m/Y') }}

{{\Carbon\Carbon::parse($post->created_at)->format('jS M Y') }}

Просто показываю несколько вариантов. Вы можете получить полную документацию по форматам даты здесь

В вашем случае код должен быть

@if (isset($post->created_at))
  <input type = "date" class = "form-control" id = "date-created" name = "created_at" value = "{{ \Carbon\Carbon::parse($post->created_at)->format('d/m/Y') }}">
@else
  <input type = "date" class = "form-control" id = "date-created" name = "created_at" placeholder = "Enter the date the blog post created">
@endif

Извините ... Я кое-что забыл ... Сейчас вношу правку. Я добавил ::parse, чтобы сообщить углероду, что нужно разбирать дату.

AntonyMN 11.06.2018 17:40

хм, я действительно не знаю, почему это не работает, я пробовал комбинацию значений вне laravel, но получил то же самое

Fil 11.06.2018 17:43

Отредактировано в соответствии с вашей ситуацией

AntonyMN 11.06.2018 17:47

@AntonyMN Напоминаю, что created_at и updated_at, если они подключены к модели в Laravel, по умолчанию являются переменными Carbon, поэтому вам не нужно будет вызывать их снова (через ::parse()). Вы должны просто вызвать $post->created_at->format()

Tim Lewis 11.06.2018 17:55
Ответ принят как подходящий

Единственное, что вы делаете неправильно, - это формат даты, который соответствует YYYY-MM-DD согласно Руководство разработчика Mozilla для области <input type = "date">. Таким образом, вам нужно только переключить строку формата даты на Y-m-d.

В качестве альтернативы вы также можете использовать подход Carbon, упомянутый AntonyMN, и использовать функцию toDateString(). Если вы установите поле created_at как часть полей $date с protected $dates = ['created_at']; в вашей модели, вам даже не потребуется анализировать строку даты в объект Carbon. Модель просто вернет объект Carbon по запросу.

Кстати, я не думаю, что использование заполнителя работает в поле ввода даты из-за фиксированного формата ввода.

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