获取AngularUI Bootstrap datepicker来识别YYYYMMDD格式?

时间:2015-10-22 16:09:39

标签: angularjs datepicker angular-ui-bootstrap

我们的遗产出生日期数据格式为YYYYMMDD 20151022 )。 Angular和ui-bootstrap datepicker显然不喜欢这种格式。此外,我们的新UI要求是将格式显示为MMM, d YYYY 2015年10月22日)。我没有看到在文档中强制执行非标准日期格式(数据,而不是显示)的方法。这是不支持还是我只是忽略它?

1 个答案:

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