我们的遗产出生日期数据格式为YYYYMMDD
( 20151022 )。 Angular和ui-bootstrap datepicker显然不喜欢这种格式。此外,我们的新UI要求是将格式显示为MMM, d YYYY
( 2015年10月22日)。我没有看到在文档中强制执行非标准日期格式(数据,而不是显示)的方法。这是不支持还是我只是忽略它?
答案 0 :(得分:1)
我假设你的日期选择器绑定到一个变量 - ng-model="date"
。然后简单地$watch
这个变量,并在为其分配字符串时执行nessecary格式化:
$scope.date = '';
$scope.$watch('date', function(newValue, oldValue) {
if (typeof newValue == 'string') {
var tempDate = new Date(
newValue.substr(4,2)+'-'+
newValue.substr(6,2)+'-'+
newValue.substr(0,4)
);
$scope.date = !isNaN(tempDate.getTime()) ? tempDate : new Date();
}
})
如果您已在格式date
上为yyyymmdd
分配了字符串,则会返回有效的日期对象。如果出现问题,date
将设置为今天。
$scope.date = '20151022'; //set the datepicker to 10-22-2015
$scope.date = new Date('01-01-1900') //etc works as usual
为了在Oct, 22 2015
表单上使用显示格式,您几乎是正确的,它应该只是小写y
&#39>:
uib-datepicker-popup="MMM, d yyyy"
上面的plnkr - >的 http://plnkr.co/edit/ne60bBaTuca7wajTHP9w?p=preview 强>