MVC显示格式日期+时间
本文关键字:时间 日期 显示格式 MVC | 更新日期: 2023-09-27 18:20:10
我试图以以下格式显示日期:yyyy-MM-dd HH:mm
,但它不起作用(当然yyyy-MM-dd
工作得很好,问题是时间)
型号:
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd HH:mm}", ApplyFormatInEditMode = true)]
public DateTime eventstart { get; set; }
视图:
<div class="form-group">
@Html.LabelFor(model => model.eventstart, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.eventstart, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.eventstart, "", new { @class = "text-danger" })
</div>
</div>
我假设您正在使用type="date"
生成一个输入。有两个问题需要注意:
-
正如@JonSkeet所指出的,如果你想使用日期和时间,那么你需要使用
DataType.DateTime
。这将导致输入被呈现为type="datetime"
。对于"日期"类型的输入,任何时间组件都将被丢弃,往好里说或往坏里说都不允许正确解析浏览器日期控件的值,这就导致了: -
HTML5日期时间输入类型("datetime"、"date"、"time")要求值为ISO格式,即
YYYY-MM-DDTHH:MM:SSZ
。浏览器控件将基于解析ISO格式的日期,以用户的本地格式显示日期/时间,但必须首先以ISO格式为其提供值。如果不是,则将其视为null,并将输入值显示为空。
更改:
@Html.EditorFor(model => model.eventstart,
new { htmlAttributes = new { @class = "form-control" } })
收件人:
@Html.EditorFor(model => model.eventstart,
new { htmlAttributes = new { @class = "form-control", @type="date" } })
当然可以。