指定的日期值不符合Angular 5要求的格式

问题描述 投票:0回答:5
angular typescript angular5
5个回答
6
投票

动作表达式不能包含管道。您可以通过将

[(ngModel)]
提供的双向绑定分为属性绑定和事件绑定来实现更复杂的绑定。然后可以将日期管道包含在属性绑定表达式中:

<input [ngModel]="item.value | date:'yyyy-MM-dd'" (ngModelChange)="item.value=$event" type="data" />

示例中的

input
标签需要如下所示的内容:

<input [ngModel]="CustomerVM.customer.CustomerDob | date:'yyyy-MM-dd'" (ngModelChange)="CustomerVM.customer.CustomerDob=$event" type="date" name="MemberDateOfBirth" class="form-control" (blur)="Calculate_Age(CustomerVM.customer.CustomerDob)">

0
投票

你的服务应该是这样的:

FormatDate(iDate: Date) {
   var inputDate = new Date(iDate);
   var formattedDate = inputDate.getFullYear()+'-'+(inputDate.getMonth() + 1)+'-'+ 
   inputDate.getDate();
   return formattedDate;
}

在你的 ts 文件中应该有这样的:

let newDate = new Date(this.CustomerVM.customer.CustomerDob);
this.CustomerVM.customer.CustomerDob = this.Helper.FormatDate(newDate);

0
投票

日期的响应是时间戳格式。时间戳值未填充您的日期字段,因此您需要将时间戳格式转换为日期格式。

var datePipe = new DatePipe("en-US");
  let formatedyear = datePipe.transform(this.CustomerVM.customer.CustomerDob, 'MM/dd/yyyy');
  this.CustomerVM.customer.CustomerDob = formatedyear;

然后从 '@angular/common' 导入 { DatePipe } ;在你的组件中


0
投票

使用 ngValue


0
投票

正如我在他们的文档中看到的那样,如果你想使用 Angular

datepicker
,你需要:

修复

从输入中删除

type="date"

说明

HTML5 的格式为

yyyy-MM-dd
,而 Angular 的格式为
dd-MM-yyyy

© www.soinside.com 2019 - 2024. All rights reserved.