如何以角度形式更改Angular UI Datepicker模型值格式?

时间:2015-10-31 11:53:36

标签: angularjs angular-formly angular-ui-datepicker

以下是角度形式的UI Datepicker的默认格式

  {
    "date": "2015-10-05T18:30:00.000Z"
  }

如何将上述格式更改为

  {
    "date": "2015/10/05"
  }

这是JSBIN:http://jsbin.com/cadaga/2/edit?html,js,output

1 个答案:

答案 0 :(得分:2)

通常,在模型中,您可以像现有的那样以ISO格式存储日期,并使用date过滤器(documentation)在视图中根据需要对其进行格式化:

<div>{{vm.model.date | date: 'yyyy/MM/dd'}}</div>

如果您仍想更改模型中的格式,请注入$filter并使用date过滤器,如下所示:

  

$filter('date')(date_value, format, timezone)

e.g:

$filter('date')(vm.model.date, 'yyyy/MM/dd');

或者,如果您经常操作日期,像moment.js这样的库可能会有用。

编辑:注意到您想要使用datepicker组件在angular-formly的具体上下文中更改日期模型值。 组件需要日期模型值为 标准格式 ,但您可以做的是让另一个属性具有相应的格式化日期,您可以设置日期输入的更改

HTML(在datepicker input上):

ng-change="vm.setFormattedDate(dt)"

<强>控制器:

vm.setFormattedDate = function (datetime) {
    vm.model.formattedDate = $filter('date')(datetime, 'yyyy/MM/dd');
}