首页 > 解决方案 > date.getDate 不是函数打字稿

问题描述

我有 3 个输入控件,两种日期类型,一个是数字,我想做的是从第一个控件获取日期,而不是。来自其他控件的天数将它们都添加并分配给打字稿中的第三个日期控件。但我给了我错误这是我的代码:

activeFrom: Date;
activeNoDays: number;

    //UpdateExpiry Function is called by textbox event
        updateExpiry=():void =>{
             this.gDetailDS = this.gDetailForm.value;
            console.log("Expiry days:"+this.gDetailDS.activeNoDays);
            console.log (this.addDays(this.gDetailDS.activeFrom,this.gDetailDS.activeNoDays))
          }

          addDays(date: Date, days: number): Date {
            console.log('adding ' + days + ' days');
            console.log(date);
            date.setDate(date.getDate() + days);
            console.log(date);
            return date;
          }

这是 HTML 控件:

<input
     id="txtActivateFrom"
     type ="date"
     min="rdMinDate"
     formControlName="activeFrom"
     class="form-control"
     value="{{ this.gDetailDS.activeFrom | date:'yyyy-MM-dd' }}"
     displayFormat="yyyy-MM-dd"
     useValueAsDate />

<input  type="number"
        formControlName="activeNoDays" class="form-control"
        (change)="updateExpiry()"/>

控制台消息:

Expiry days:25
adding 25 days
2019-07-12

我已经尝试了一切,但仍然遇到这个问题:

错误类型错误:date.getDate 不是函数

链接:浏览器控制台上出现错误截图

标签: angulartypescriptdatedatetime

解决方案


从 Web API 获取日期时,我曾经遇到过类似的问题。我通过创建一个新的 Date 对象来解决它。

所以你的函数调用可能如下所示:

this.addDays(new Date(this.gDetailDS.activeFrom),this.gDetailDS.activeNoDays)

推荐阅读