首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HTML-5日期字段在Chrome中显示为"mm/dd/yyyy“,即使在设置有效日期时也是如此。

HTML-5日期字段在Chrome中显示为"mm/dd/yyyy“,即使在设置有效日期时也是如此。
EN

Stack Overflow用户
提问于 2013-02-01 13:24:45
回答 5查看 149.5K关注 0票数 54

我刚刚将一个ASP.Net MVC应用程序升级到MVC-4。基于DateTime值的输入字段编辑器现在包括HTML-5 type="date"属性/值声明。

现在,在Chrome中查看时,我的日期输入在输入字段中显示为"mm/dd/yyyy“:

即使当我使用value属性传入格式正确的日期时:

代码语言:javascript
复制
<input value="2012/10/02" type="date"/>

我仍然在输入框中得到"mm/dd/yyyy“,直到用户手动更改该值为止。

问题似乎在于Chrome,并且独立于我的后端框架。在行动中看到这个问题:jsFiddle

当然,编辑记录的...big问题。如果用户提取一个已经有有效日期的记录,它将不会在submit上通过验证,除非s/他单击该字段并手动重置该值。

其他浏览器没有问题。

,这是Chrome吗?还是我错过了HTML-5日期字段的工作方式?

更新

参见这个修改小提琴:http://jsfiddle.net/HudMe/5/它有一个HTML-4和一个HTML-5日期输入,每一个都设置为"10/01/2012“作为页面加载的值。

单击“进入任何日期”字段。Javascript应该发出警告,其中包含该元素的字段值。

因为一个有效的日期已经被传递给了value属性,这应该显示"10/01/2012",但是在Chrome中,对于HTML-5日期字段,没有显示任何内容。手动重置此值,然后再次单击,它将显示。

在Safari、Firefox和Opera中,HTML5字段的值显示和警告如预期一样,无需调整页面量。

关于接受答案的注记:

对于Asp.net mvc-4的其他用户,您可以在视图模型中的DateTime字段声明上使用[DisplayFormat]属性调整显示格式。(在https://stackoverflow.com/a/12634470/613004发现)

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-02-01 14:15:19

在chrome中设置您需要执行的YYYY-MM-DD值,我猜是因为这样做有效:http://jsfiddle.net/HudMe/6/

因此,要使其工作,您需要将日期设置为2012-10-01

票数 63
EN

Stack Overflow用户

发布于 2013-02-01 14:11:24

也有同样的问题。一位同事用jQuery.Globalize解决了这个问题。

代码语言:javascript
复制
<script src="/Scripts/jquery.validate.js" type="text/javascript"></script>
<script src="/Scripts/jquery.globalize/globalize.js" type="text/javascript"></script>
<script src="/Scripts/jquery.globalize/cultures/globalize.culture.nl.js"></script>
<script type="text/javascript">
    var lang = 'nl';

    $(function () {
        Globalize.culture(lang);
    });

    // fixing a weird validation issue with dates (nl date notation) and Google Chrome
    $.validator.methods.date = function(value, element) {
        var d = Globalize.parseDate(value);
        return this.optional(element) || !/Invalid|NaN/.test(d);
    };
</script>

我正在使用jQuery数据报警器来选择日期。

票数 3
EN

Stack Overflow用户

发布于 2016-08-08 14:21:36

我也有同样的问题,比如2016-08-8,然后我解决了把一个零加到两位数的问题,它起作用了。在chrome、firefox和Edge中进行测试

代码语言:javascript
复制
today:function(){
   var today = new Date();
   var d = (today.getDate() < 10 ? '0' : '' )+ today.getDate();
   var m = ((today.getMonth() + 1) < 10 ? '0' :'') + (today.getMonth() + 1);
   var y = today.getFullYear();
   var x = String(y+"-"+m+"-"+d); 
   return x;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14647290

复制
相关文章

相似问题

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