Angular 4打字稿-构造随后7天的日期数组 [英] Angular 4 Typescript - Construct Array of Dates of subsequent 7 Days

查看:115
本文介绍了Angular 4打字稿-构造随后7天的日期数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想构造一个包含7个日期的数组.这些日期将是SelectedDate之后的7天.我已经在Component.ts

I want construct an array of 7 dates. those dates will be 7 subsequent days from a SelectedDate. I have written following code in Component.ts

public selectedWeekDates: Date [];

public selectedWeek: Date = new Date();

SetSelectedWeekDates(): void {
    var dte = new Date();
    dte = this.selectedWeek;
    for (let i: number = 1; i < 8; i++) {            
        this.selectedWeekDates[i - 1].setDate(dte.getDate() + i);
    }

}

我的html如下

.
.
.
<ng-container *ngFor="let dates of selectedWeekDates">
    <div style="padding: 10px;">
        {{ dates| date:"dd" }}
    </div>
</ng-container>
.
.
.

我在控制台中遇到错误

TypeError:无法获取未定义或空引用的属性"0"在xxxComponent.prototype.SetSelectedWeekDates(eval代码:179:143)

TypeError: Unable to get property '0' of undefined or null reference at xxxComponent.prototype.SetSelectedWeekDates (eval code:179:143)

我可以知道我的代码有什么问题吗?

May I know what is wrong in my code?

推荐答案

在您的函数中,您正在对 this.selectedWeekDates 的未定义元素使用 setDate 函数.您应该使用 this.selectedWeek dte 来获取和设置日期,如下所示:

In your function, you are using setDate function on elements of this.selectedWeekDates while they are undefined. You should use this.selectedWeek or dte to get and set your dates as below:

SetSelectedWeekDates(): void {
    let dte: Date = new Date(this.selectedWeek);        
     for (let i = 1; i < 8; i++) {            
        this.selectedWeekDates[i-1]=new Date(dte.setDate(dte.getDate() + 1));
        }

}

也不要在getDate()之后添加 i ,而是像上面那样添加1,因为setDate()函数在每次迭代中将 dte 递增一天,这意味着dte是每次迭代后更新.

Also instead of adding i after getDate(), add 1 as done above as setDate() function is incrementing dte by a day in every iteration which means dte is updated after every iteration.

这篇关于Angular 4打字稿-构造随后7天的日期数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆