首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Angular.js和HTML5日期输入值--如何让火狐在日期输入中显示可读的日期值?

Angular.js和HTML5日期输入值--如何让火狐在日期输入中显示可读的日期值?
EN

Stack Overflow用户
提问于 2013-08-05 23:19:30
回答 6查看 138K关注 0票数 64

我有一个HTML5日期输入,我希望默认情况下将其值设置为我的模型中的date属性的值。我对格式化并不太挑剔,因为Chrome似乎会根据我的语言环境对我做出决定,但理想情况下,格式应该是一致的dd/MM/yyyy

我是这样设置我的输入的:

代码语言:javascript
复制
<input type="date" 
       ng-model="date" 
       value="{{ date | date: 'yyyy-MM-dd' }}" />

这在Chrome上运行得很好,默认情况下我看到了以下内容:

(我仍然不太理解为什么要在yyyy-MM-dd__中给出值,如果Chrome仍然根据我的语言环境对其进行格式化,但这是另一个问题。)

我的问题是Firefox没有以我指定的方式显示日期的值。我认为这与将输入绑定到date模型有关,因为我可以在value属性中指定几乎任何字符串,并且在默认情况下,我仍然会在输入中看到长日期字符串:

如果我从input标记中删除ng-model="date",Firefox会很好地显示我给它的任何值。我不认为输入绑定的模型对它的默认值有任何影响吗?

我知道日期输入并不是所有人都支持的,但考虑到它应该依赖于简单的文本输入,我不明白为什么它的值不能简单地为2013-08-05,正如angular的日期过滤器所指定的那样。

那么,如何让接受我在日期输入中的格式值呢?

备注在用户完成编辑之后,我当然会执行验证,并将每个日期输入值转换为适当的Date对象。不确定这是否与问题相关,但只是为了以防万一,因为输入格式显然需要一致,以便日期转换在所有浏览器中都能相同地工作。当然,Chrome为我决定输入格式是有问题的……

EN

回答 6

Stack Overflow用户

发布于 2013-08-05 23:56:52

为什么必须以yyyy-MM-dd?给定值

根据HTML5的input type = date spec,该值必须采用yyyy-MM-dd格式,因为它采用在RFC3339中指定的有效full-date的格式为

代码语言:javascript
复制
full-date = date-fullyear "-" date-month "-" date-mday

这与Angularjs无关,因为指令输入不支持date类型。

如何让火狐接受日期输入中的格式值?

FF至少在24.0版本之前不支持date类型的输入。您可以从here获取此信息。所以现在,如果您在FF中使用类型为date的输入,文本框将接受您传入的任何值。

我的建议是,您可以使用Angular-ui's Timepicker,而不要使用日期输入的HTML5支持。

票数 12
EN

Stack Overflow用户

发布于 2014-06-08 01:19:59

你可以使用这个,它工作得很好:

代码语言:javascript
复制
<input type="date" class="form1"  
  value="{{date | date:MM/dd/yyyy}}"
  ng-model="date" 
  name="id" 
  validatedateformat 
  data-date-format="mm/dd/yyyy"
  maxlength="10" 
  id="id" 
  calendar 
  maxdate="todays"
  ng-click="openCalendar('id')">
    <span class="input-group-addon">
      <span class="glyphicon glyphicon-calendar" ng-click="openCalendar('id')"></span>
    </span>
</input>
票数 3
EN

Stack Overflow用户

发布于 2016-06-05 11:05:13

在我的例子中,我是这样解决的:

代码语言:javascript
复制
$scope.MyObject = // get from database or other sources;
$scope.MyObject.Date = new Date($scope.MyObject.Date);

和输入类型date是可以的

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18061757

复制
相关文章

相似问题

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