0

我正在处理日期格式的问题: 在我的公式中我使用的是uib-datepicker-popup来获取日历并在控制器中我需要格式化迄今为止所以我使用的是$filter('date')

所以这里是输入字段:

<div class="input-group"> 
    <input id="fechasolicitudc" type="text" class="form-control" 
     ng-class="(form.fechasolicitudc.$invalid) && (submitted) ? 'error': '' " 
     ng-style="(form.fechasolicitudc.$invalid) && (submitted) && {'background-color':'pink'}" 
     name="fechasolicitudc" uib-datepicker-popup="dd/MM/yyyy" 
     ng-model="vm.peticion.contacto.fechaSol" 
     is-open="vm.datePickerOpenStatus.fechasolicitudc"/> 
    <span class="input-group-btn"> 
     <button type="button" class="btn btn-default" 
      ng-click="vm.openCalendar('fechasolicitudc')"> 
      <i class="glyphicon glyphicon-calendar"></i> 
     </button> 
    </span> 
</div> 

,并在我的控制器:

if (vm.peticion.contacto.fechaSol != null) { 
    var d = $filter('date')(vm.peticion.contacto.fechaSol, 'yyyy-MM-dd'); 
    vm.peticion.contacto.fechaSol = d; 
} 

什么一切发生的是,日期为在数据库中更新但该字段已被删除。 当我尝试输入type="date"时,该字段未被删除,但日历弹出窗口不起作用。

回答

0

在您的标记:

//... 
uib-datepicker-popup="{{dateFormat}}" ng-model="vd" 
datepicker-options="vdOptions" 
// ... 

在你的控制器:

$scope.dateFormat = 'dd MMM yyyy'; // or your custom date 

// and if you want to have your date set as today 
$scope.vd = new Date(); 
$scope.vdOptions = { 
     formatYear: 'yy', 
     formatMonth: 'MM', 
     maxDate: new Date(), 
     minDate: minDate, 
     startingDay: 1, 
     showWeeks: false, 
     yearRows: 2, 
     yearColumns: 2 
}; 

vd = valueDate

我不认为在这种情况下使用$filter点。

+0

在我的数据库中,格式是yyyy-MM-dd和datepicker-popup =“{{dateFormat}}”只改变日期的出现而不是格式,如果我不做$ filter插入数据库不起作用(我不知道为什么) – Smahane

+0

我已经用vdOptions属性更新了答案,您可以在其中定制日期选项 – flashjpr

+0

无论如何,这无法解决我的问题 – Smahane