gpt4 book ai didi

javascript - typescript 中两个日期之间的天数列表

转载 作者:搜寻专家 更新时间:2023-10-30 22:04:01 25 4
gpt4 key购买 nike

我尝试创建一个两天之间的天数列表。

我创建了这样的解决方案:

this.daysBetween = [];
while (dateFrom.getDate() !== dateTo.getDate()+1 ) {
this.daysBetween.push(this.dateFrom);
dateFrom.setDate(dateFrom.getDate()+1);
}

但它只在 90% 的情况下有效(如果有月份变化则无效)

例如当我选择日期时:

dateFrom: 29 august
dateTo: 30 august

它打印我从 8 月 29 日到 9 月 30 日的日子,忽略 8 月 31 日 ...

关于如何修复我的解决方案,或者有更好的解决方案有什么想法吗?

编辑:

我的问题与建议的问题不同,因为在我的问题中我输入了两个日期

例如

let dateFrom = new Date(2018, 9, 29);
let dateTo = new Date(2018, 9, 30);

根据建议的重复结果,这可能是整数 1

我的问题是如何遍历两个日期之间的所有日期 (dateFrom, dateTo)

那些 2 个日期示例 (dateFrom, dateTo) 的结果将包含 2 个元素:

Mon Oct 29 2018 00:00:00 GMT+0100
Tue Oct 30 2018 00:00:00 GMT+0100

最佳答案

下面给出了简单的 Typescript 解决方案

Javascript version on Github

    class MyDate {
dates: Date[];
constructor() {
this.dates = [];
}

private addDays(currentDate) {
let date = new Date(currentDate);
date.setDate(date.getDate() + 1);
return date;
}

getDates(startDate: Date, endDate: Date) {
let currentDate: Date = startDate;
while (currentDate <= endDate) {
this.dates.push(currentDate);
currentDate = this.addDays(currentDate);
}

return this.dates;
}
}

let md = new MyDate();
let daysBetween: Date[] = md.getDates(new Date(2018, 7, 22), new Date(2018, 8, 30));
console.log(daysBetween);

关于javascript - typescript 中两个日期之间的天数列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51926579/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com