Я хотел бы установить value
поля input:datetime-local
в Лезвие с данными из базы данных, но он показывает только пустые значения заполнителя.
Ниже моя попытка, которая не работает:
<input type = "datetime-local" value = "{{ date('d/m/YH:i', strtotime($slider->run_to)) }}">
В своем исследовании я обнаружил, что в этом формате поле нуждается в value
YYYY-MM-DDTHH:MM
или как в моем случае d/m/YTH:i
, где T
— строковый литерал.
Моя проблема в том, что я не могу найти способ сделать это в Laravel-Blade с динамическими данными.
Есть ли способ достичь этого? Если нет, то какие альтернативы существуют для отображения даты и времени в поле ввода?
Формат datetime-local значение не похож на то, что мы видим в браузере по умолчанию.
... the displayed date and time formats differ from the actual value; the displayed date and time are formatted according to the user's locale as reported by their operating system, whereas the date/time value is always formatted YYYY-MM-DDThh:mm.
Я заменю ваш $slider->run_to
действительным datetime
'2022-03-17 23:59:26'
, чтобы предоставить свое решение.
<input type = "datetime-local" value = "{{ substr(date('c', strtotime('2022-03-17 23:59:26')), 0, 16) }}">
c
, что означает Дата ISO 8601, который выводит '2022-03-17T23:59:26+01:00'
.':26+01:00'
substr
$length
из 19
не сломает элемент.Демо: https://3v4l.org/aMpMN
Другое альтернативное решение, включающее секунды:
<input type = "datetime-local" value = "{{ str_replace(' ', 'T', '2022-03-17 23:59:26') }}">
Демо: https://3v4l.org/710RU
@TheOnlySmartBoy Покажите мне ценность $slider->run_to
и date('c', strtotime($slider->run_to))
Второй вариант сработал, а первый нет, я изучаю причину и обновлю свой комментарий, чтобы помочь всем, у кого может возникнуть такая же проблема в будущем.