Html Angular 7(Change)-输入类型日期的函数不起作用,但为什么格式错误?

Html Angular 7(Change)-输入类型日期的函数不起作用,但为什么格式错误?,html,angular,typescript,html5-input-date,Html,Angular,Typescript,Html5 Input Date,我正在尝试通过按键输入更新日期。我还需要将所选日期指定给对象的属性。 以下是我的代码: <input type="date" [value]="dateTime()" (change)="setDate($event)"/> 现在,当我尝试设置新日期时,问题出现了: setDate(e){ this.info.sDate= e.target.value; } 我尝试将日期上的每个更改分配给对象的属性info.sDate。 我收到警告:platform bro

我正在尝试通过按键输入更新日期。我还需要将所选日期指定给对象的属性。 以下是我的代码:

<input type="date" [value]="dateTime()"  (change)="setDate($event)"/>
现在,当我尝试设置新日期时,问题出现了:

  setDate(e){
    this.info.sDate= e.target.value;
    }
我尝试将日期上的每个更改分配给对象的属性
info.sDate
。 我收到警告:
platform browser.js:1133指定的值“2020--0-1-”不符合所需的格式“yyyy-MM-dd”。
,尽管我不理解原因

有人能帮我吗

let year = date.substring(6,10);
let month = date.substring(3,5);
let day = date.substring(0,2);
你的子串给出的是:10.0-1.-20上面给出的是:2020-01-10


您的子字符串给出的是:10.0-1.-20上面给出的是:2020-01-10

如果您这样拼接用户输入的日期,可能会给自己带来很多问题。格式可能会根据用户的区域设置而更改

解决这个问题的一种方法是使用三个不同的输入框,分别对应日期的每个元素(日、月、年)

然后你可以做如下的事情

let date = moment(`${this.day}-${this.month}-${this.year}`, "DD-MM-YYYY");

如果像这样拼接用户输入的日期,可能会给自己带来很多问题。格式可能会根据用户的区域设置而更改

解决这个问题的一种方法是使用三个不同的输入框,分别对应日期的每个元素(日、月、年)

然后你可以做如下的事情

let date = moment(`${this.day}-${this.month}-${this.year}`, "DD-MM-YYYY");

您是如何在组件中声明
this.info.sDate
的?通过API调用,
this.data.getOrdByID(this.id).subscribe(data=>{this.info=data;})
奇怪的是,如果我第二次选择日期,它就会工作。第一次出现格式错误时,为正常拾取日期。但是,通过键输入提示日期毕竟不起作用。你能提供stackblitz吗?你是如何在组件中声明
this.info.sDate
的?通过API调用,
this.data.getOrdByID(this.id).subscribe(data=>{this.info=data;})
奇怪的是,如果我第二次选择了日期,它就会起作用。第一次出现格式错误时,为正常拾取日期。但通过按键输入来提示日期毕竟是行不通的。你能提供stackblitz吗?