首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >HTML5日期格式为dd/MMM/YYYY

HTML5日期格式为dd/MMM/YYYY
EN

Stack Overflow用户
提问于 2017-09-06 11:32:24
回答 1查看 7.4K关注 0票数 0

我在MVC5 asp.net项目中使用dd/‘m/YYYY格式的日期时遇到问题。主要是在Chrome上,因为它似乎只接受yyyy/mm/dd格式的日期。

为了标准化跨浏览器的行为,我使用了一个jquery datetimepicker组件。

我试过很多方法,但Chrome仍然说日期无效。即使在将输入定义为文本而不是日期之后也是如此。

此外,即使我关闭了对特定组件的验证(data-val="false"),Chrome仍然坚持将日期标记为无效。

型号:

代码语言:javascript
运行
复制
public class order 
{
    [Key]
    public int orderID { get; set; }

    [Required]
    public string comments { get; set; }

    [Required]
    [DisplayFormat(DataFormatString = "{0:dd/MMM/yyyy}", ApplyFormatInEditMode = false)]
    [Display(Name = "Date of Shipping")]
    public DateTime date { get; set; }
}

查看日期输入:

代码语言:javascript
运行
复制
<div class="form-group">
    @Html.LabelFor(model => model.date, htmlAttributes: new { @class = "control-label col-md-2" })
    <div class="col-md-10">
        @Html.EditorFor(model => model.date, new { htmlAttributes = new { @class = "form-control datetimepicker" } })
        @Html.ValidationMessageFor(model => model.date, "", new { @class = "text-danger" })
    </div>
</div>

导入:

代码语言:javascript
运行
复制
<script src="https://code.jquery.com/jquery-3.2.1.js"/script>
<link rel="stylesheet" type="text/css" href="~/Content/jquery.datetimepicker.min.css" />
<script src="~/Scripts/jquery.datetimepicker.full.min.js"></script>

Javascript:

代码语言:javascript
运行
复制
<script type="text/javascript">
    jQuery.datetimepicker.setLocale('es');

    jQuery('#date').datetimepicker({
        format: 'd/M/Y',
    });
</script>
EN

回答 1

Stack Overflow用户

发布于 2017-09-07 00:48:24

我终于能够解决这个问题了:

-Fisrt您需要将moment.js添加到您的项目中,可以使用NutGet管理器添加,然后在您的页面上引用:

代码语言:javascript
运行
复制
@Scripts.Render("~/Scripts/moment-with-locales.min.js")

非常重要的是,如果使用非英语格式的日期,您需要导入带有区域设置的时刻,即使在更改区域设置后,它仍将保持为'en‘

-Then添加以下java脚本代码:

代码语言:javascript
运行
复制
$.datetimepicker.setDateFormatter({
   parseDate: function (date, format) {
       var d = moment(date, format);
       return d.isValid() ? d.toDate() : false;
},

formatDate: function (date, format) {
    return moment(date).format(format);
    }
});

$.validator.methods.date = function (value, element) {
    return this.optional(element) || moment(value, "DD/MMM/YYYY", 'es').isValid();
}

-Also注意到datetimepicker的初始化更改如下:

代码语言:javascript
运行
复制
jQuery('#date').datetimepicker({
    format: 'DD/MMM/YYYY HH:mm',
    formatTime: 'HH:mm',
    formatDate: 'DD/MMM/YYYY'
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46066353

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档