当前位置: 首页 > 知识库问答 >
问题:

HTML5格式日期dd/MMM/YYYY

朱通
2023-03-14

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

为了规范跨浏览器的行为,我使用了jQuery datetimepicker组件。

我尝试了很多方法,但Chrome仍然表示日期无效。即使在将输入定义为文本而不是日期之后。

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

型号:

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; }
}

查看日期输入:

<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>

导入:

<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:

<script type="text/javascript">
    jQuery.datetimepicker.setLocale('es');

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

共有1个答案

欧阳何平
2023-03-14

我终于解决了这个问题:

-首先,您需要添加时刻。js添加到您的项目中,可以使用NutGet manager添加,然后在页面上引用:

@Scripts.Render("~/Scripts/moment-with-locales.min.js")

非常重要的是,如果使用非英语格式的日期,您需要导入带有区域设置的时刻,即使更改了区域设置,它也会保持为“en”

-然后添加以下java脚本代码:

$.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();
}

-还要注意,datetimepicker初始化更改如下:

jQuery('#date').datetimepicker({
    format: 'DD/MMM/YYYY HH:mm',
    formatTime: 'HH:mm',
    formatDate: 'DD/MMM/YYYY'
});
 类似资料:
  • 问题内容: 我想将日期格式从“ MMM dd,yyyy HH:mm:ss a”更改为“ MM.dd”。我有以下代码 但是我在 请帮忙 问题答案: 三种可能的解释: 您的默认语言环境与输入日期不兼容-例如,它不能理解为月份名称 输入字符串有问题,或者 是错误的类型(例如而不是,或完全是其他类型),或者未声明。 您应该在问题中包括异常的详细信息以弄清是什么,但这是一个工作示例,基本上使用您自己的代码,

  • 问题内容: 我在日期解析示例日期上遇到了问题: 有例外 确实我想将此格式日期解析为yyyy-MM-dd我尝试: 采取:java.text.ParseException:无法解析的日期:“ 2013年10月16日星期三00:00:00 CEST” 好的,我更改为并工作: 问题答案: 我将假设对您来说是pl-PL因为您似乎在波兰。 因此,日期字符串中的英语单词会导致无法解析的日期。 一个合适的波兰日期

  • 在一个数据集中,我有一些日期时间,格式为EEE MMM dd hh:mm:ss zzz yyyyy,比如“mon 5月18日20:25:32 GMT+02:00202”。我如何在Python中以ISO格式和机器本地时间转换这个字符串?

  • 问题内容: 我正在尝试解析格式的日期。 它引发以下异常 它可以解析格式,但是格式失败。我也很累设定,但是在那种情况下也失败了。 问题答案: 原因是解析默认情况下区分大小写,并且格式化程序无法识别。它只会识别。 您可以使用并调用来构造不区分大小写的解析器: 将格式样式的其余部分的解析样式更改为不区分大小写。 解析可以区分大小写或不区分大小写-默认情况下区分大小写。此方法允许更改区分大小写的解析设置。

  • 问题内容: 当我在下面的代码下运行时,出现Unparseable错误。如何将dd MMM yyyy格式转换为dd / MM / yyyy格式? 问题答案: 假设您修复了明显的语法错误,则: 您要做的就是为您需要解析的格式创建一个解析器,并为您想要的格式创建一个格式化器:

  • 我试图使用Java8重新格式化今天的日期,但我得到了以下错误: java.time.format.DateTimeParseException:无法解析文本'09-Oct-2017':无法从TemporalAccessor获取LocalDate:{WeekBasedYear[WeekFields[SUNDAY,1]]=2017,MonthOfYear=10,DayOfYear=9},类型为java