我有这段代码,
<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>
我要做的是,将日期从数据库显示回输入框,允许用户编辑日期。
但是在浏览器上呈现时显示了
请不要downvote。这可能是一个简单的问题,但我找不到一个简单的解释,说明为什么它对我不起作用。
答案 0 :(得分:2)
您唯一错误的是日期格式,根据Mozilla Developers Guide for the <input type="date">
field YYYY-MM-DD
。因此,您只需将日期格式字符串切换为Y-m-d
。
或者,您也可以使用AntonyMN提到的Carbon
方法并使用函数toDateString()
。如果您将created_at
字段设置为模型中$date
字段的protected $dates = ['created_at'];
字段的一部分,则您甚至不需要将日期字符串解析为Carbon对象。该模型将根据需要简单地返回一个Carbon对象。
顺便说一下,由于输入的固定格式,我不认为使用占位符可以在日期输入字段上工作。
答案 1 :(得分:1)
Laravel附带Carbon nesbot开箱即用以帮助格式化日期。 laravel中的日期可以很容易地格式化:
{{\Carbon\Carbon::parse($post->created_at)->format('d/m/Y') }}
{{\Carbon\Carbon::parse($post->created_at)->format('jS M Y') }}
只是展示一些选项。您可以获得有关日期格式here
的完整文档在您的情况下,代码应为
@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