在 Blade 中为日期时间本地输入字段设置默认值

Setting default value for a datetime-local input field in Blade

我想用数据库中的数据设置 Bladeinput:datetime-local 字段的 value,但它只显示空白占位符值。

以下是我的尝试,但没有成功:

<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 value格式的格式与我们默认在浏览器上看到的格式不相似。

... 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) }}">
  1. 我曾经 format character c 代表 ISO 8601 日期 输出 '2022-03-17T23:59:26+01:00'.
  2. 我删掉了UTC偏移量':26+01:00'
  • 请注意,允许 19substr $length 的秒数不会破坏元素。

演示:https://3v4l.org/aMpMN


另一个替代解决方案,包括 seconds:

<input type="datetime-local" value="{{ str_replace(' ', 'T', '2022-03-17 23:59:26') }}">

演示:https://3v4l.org/710EN