
有时,我们需要获取给定日期范围内的所有日期。在本教程中,我们将获取两个日期并查找两个日期之间的所有日期。此外,我们会将所有日期存储在数组中。
在这里,我们将学习三种方法将所有日期存储在 JavaScript 中给定两个日期之间的数组中。
使用 while 循环和 setDate() 方法
我们可以使用 while 循环进行迭代,并使用 setDate() 方法来设置日期对象中的日期。在 while 循环的每次迭代中,我们可以将日期增加一天并将其设置为 date1。
语法
用户可以按照下面的语法使用 while 循环和 setDate() 方法来获取两个日期之间的所有日期。
立即学习“Java免费学习笔记(深入)”;
while (date1 <= date2) {
dateArray.push(new Date(date1));
date1.setDate(date1.getDate() + 1);
}
在上述语法中,date1 是开始日期,date2 是结束日期。
算法
第 1 步 – 创建两个日期。
第 2 步 – 使用 while 循环,检查 date1 是否小于 date2。
第 3 步 – 从 date1 创建一个新日期,并将其推送到 dateArray。
步骤 4 – 使用 getDate() 方法从 date1 获取日期,并加 1。
第 5 步 – 使用 setDate() 方法设置新日期。
示例 1
在下面的示例中,我们使用 Date 对象创建了 date1 和 date2。之后,我们实现了上述算法来获取两个日期之间的所有日期。在输出中,用户可以观察 date1 和 date2 之间的所有日期。
Using the setDate() method and while loop to get all dates between two dates in the array format.
使用for循环和日期的总毫秒数
在这种方法中,我们将获得第一个和第二个日期的总毫秒数。之后,我们将继续将 1 天的毫秒数添加到当前日期的总毫秒数并使用新的毫秒数,我们就可以创建一个日期。
这样,我们就可以找到给定两个日期之间的所有日期并将它们存储在数组中。
语法
用户可以按照下面的语法使用for循环和日期的总毫秒数来获取两个日期之间的所有日期。
for (var currentMillis = startMillis; currentMillis < lastMillis; currentMillis += milliOf1Day) {
// pushing updated date to the array
dateArray.push(new Date(currentMillis));
}
在上面的语法中,milliOf1Day 是一天的总毫秒数。
算法
第 1 步 – 获取当前日期和上次日期的总毫秒数。
步骤 2 – 使用 for 循环,并使用开始日期的总毫秒数初始化 currentMillis 变量。
第 3 步 – 使用 for 循环进行迭代,直到发现当前毫秒数小于上次日期的毫秒数。
步骤 4 –此外,将 1 天的毫秒数添加到 currentMillis 中。
第 5 步 – 使用 currentMillis 创建一个新日期,并将其推送到 for 循环中的 dateArray 变量。
示例 2
在此示例中,我们有 milliOf1Day 变量,其中存储了 1 天的总毫秒数。之后,我们使用for循环和毫秒来实现上述算法,以获取两个日期之间的所有日期。
Using the setDate() method and while loop to get all dates between two dates in the array format.
使用 momentJS 库
momentJS 库允许我们操作日期。
语法
用户可以按照下面的语法使用momentJS库来获取两个日期之间的所有日期。
while (currentDate.add(1, "days").diff(lastDate) < 0) {
allDates.push(currentDate.clone().toDate());
}
在上面的语法中,我们使用了 momentJS 库的 add() 和 diff() 方法。
示例 3
在下面的示例中,我们从用户处获取开始日期和最后日期。之后,我们使用输入日期并使用 momentJS 库创建日期。
接下来,我们使用 add() 方法将一天添加到当前日期。此外,我们使用 diff() 方法来获取当前日期和最后日期之间的差异。
Using the setDate() method and while loop to get all dates between two dates in the array format.











