我的表单上有以下输入:
<md-input-container class="md-block" flex>
<label>Install Date</label>
<input type="text" date="yyyy-MM-dd" ng-model="selectedCompanyDetail.InstallDate" disabled>
</md-input-container>
正如您可能知道的那样,我希望以这种格式yyyy-MM-dd
显示日期。但是,我得到的是:1993-01-01T00:00:00
。
如果我这样做,看起来是正确的:
<md-input-container class="md-block" flex>
<label>Install Date</label>
<input type="text" ng-model="selectedCompanyDetail.InstallDate | date:'yyyy-MM-dd':'UTC'" disabled>
</md-input-container>
但是,我在开发人员工具中遇到了这个错误:
angular.js:13307错误:[ngModel:nonassign] http://errors.angularjs.org/1.5.0-rc.2/ngModel/nonassign?p0=selectedCompanyDetail.InstallDate%20%7CNaNate%3A'yyyy-MM-dd'%3A'UTC'&amp; p1 =%3Cinput%20type%3D%22text%22%20date%3D %22yyyy-MM-DD%22%20ng的模型%3D%selectedCompanyDetail.InstallDate%20%7C%日期%3A'yyyy-MM-DD '%3A'UTC' %22%20disabled%3D%22%22%类%3D%22ng-原始%20ng的-不变%20ng的-有效%22%3E 在错误(本机) 在https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.0-rc.2/angular.min.js:6:421
我仍然可以使用该视图,但每个日期字段都有同样的错误。
我有很多日期字段,并且不希望按照此处的建议为每个字段添加过滤器:AngularJS get formatted date in ng-model
必须有一种本地方式来格式化日期输入,就像没有时间的日期一样。
建议或想法?
答案 0 :(得分:0)
您可以使用此程序包来处理任何类型的日期和时间操作。 https://github.com/urish/angular-moment
我这样使用它。
selectedCompanyDetail.InstallDateNewFormat = moment(selectedCompanyDetail.InstallDate).format('YYYY-MM-DD');
您必须使用其他模型来存储此新日期,因为md-datepicker
仅允许data
javascript对象。而这种格式返回纯文本(字符串)。