如何以特定于浏览器的方式设置日期时间选择器格式?
How can the datetimepicker format be set in a browser specific way?
我们正在开发 ASP.NET MVC 网络应用程序,它在前端使用 Bootstrap 的日期时间选择器进行选择。我们需要为所有主流浏览器提供最新版本的支持。
Chrome 要求日期格式为 'yyyy-MM-dd' 以解决如下错误:
The specified value "11/18/2016 00:00:00" does not conform to the
required format, "yyyy-MM-dd".
这会导致问题,因为当使用以下代码时 format
选项可以正常工作(即用户可以单击日期并将其设置在输入框中):
$('.datetimepicker').datetimepicker({
format: 'YYYY-MM-DD',
showTodayButton: true,
showClose: true
});
但是,此代码导致 Firefox 和 IE 不使用设置的值属性:
<div class="form-group">
@Html.LabelFor(model => model.StartDate, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.StartDate, new { htmlAttributes = new { @class = "form-control datetimepicker", type = "date", @Value = Model.StartDate } })
@Html.ValidationMessageFor(model => model.StartDate, "", new { @class = "text-danger" })
</div>
</div>
删除 format: 'YYYY-MM-DD'
会导致 Firefox 和 IE 正常工作,但会导致 Chrome 不再工作。有没有办法以特定于浏览器的方式设置 format
?
这不是世界上最优雅的解决方案,但由于我们需要了解浏览器的其他内容,我们根据 Request.UserAgent
在服务器端设置标志,然后在客户端使用这些标志:
服务器 C#
ViewBag.Chrome = userAgent.Contains("Chrome");
客户JavaScript
$('.datetimepicker').datetimepicker({
showTodayButton: true,
showClose: true,
@if (ViewBag.Chrome)
{
<text>format: 'YYYY-MM-DD'</text>
}
});
我们正在开发 ASP.NET MVC 网络应用程序,它在前端使用 Bootstrap 的日期时间选择器进行选择。我们需要为所有主流浏览器提供最新版本的支持。
Chrome 要求日期格式为 'yyyy-MM-dd' 以解决如下错误:
The specified value "11/18/2016 00:00:00" does not conform to the required format, "yyyy-MM-dd".
这会导致问题,因为当使用以下代码时 format
选项可以正常工作(即用户可以单击日期并将其设置在输入框中):
$('.datetimepicker').datetimepicker({
format: 'YYYY-MM-DD',
showTodayButton: true,
showClose: true
});
但是,此代码导致 Firefox 和 IE 不使用设置的值属性:
<div class="form-group">
@Html.LabelFor(model => model.StartDate, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.StartDate, new { htmlAttributes = new { @class = "form-control datetimepicker", type = "date", @Value = Model.StartDate } })
@Html.ValidationMessageFor(model => model.StartDate, "", new { @class = "text-danger" })
</div>
</div>
删除 format: 'YYYY-MM-DD'
会导致 Firefox 和 IE 正常工作,但会导致 Chrome 不再工作。有没有办法以特定于浏览器的方式设置 format
?
这不是世界上最优雅的解决方案,但由于我们需要了解浏览器的其他内容,我们根据 Request.UserAgent
在服务器端设置标志,然后在客户端使用这些标志:
服务器 C#
ViewBag.Chrome = userAgent.Contains("Chrome");
客户JavaScript
$('.datetimepicker').datetimepicker({
showTodayButton: true,
showClose: true,
@if (ViewBag.Chrome)
{
<text>format: 'YYYY-MM-DD'</text>
}
});