📅  最后修改于: 2023-12-03 14:53:04.157000             🧑  作者: Mango
如果你需要获取两个日期之间的所有日期,并将它们保存在 JavaScript 数组中,那么可以使用以下方法:
new Date()
构造函数来创建日期对象,也可以使用年、月、日的数字值来创建日期对象。getTime()
方法获取日期对象的时间戳。时间戳是一个表示当前日期的数字值,它以毫秒为单位计算自 1970 年 1 月 1 日距离当前日期的总毫秒数。setTime()
方法将当前日期设置为我们需要的日期,并将其添加到数组中。以下是一段示例代码,可以帮助你完成此任务:
function getAllDates(startDate, endDate) {
// Create an array to store all dates
var dates = [];
// Convert both dates to milliseconds
var startDateMs = startDate.getTime();
var endDateMs = endDate.getTime();
// Calculate the difference in milliseconds
var differenceMs = endDateMs - startDateMs;
// Loop through all dates, adding them to the array
for (var i = 0; i <= differenceMs; i += 86400000) {
var currentDate = new Date(startDateMs + i);
dates.push(currentDate);
}
// Return the array of dates
return dates;
}
在上面的代码中,我们使用 getAllDates()
函数来获取两个日期之间的所有日期,并将它们保存在 dates
数组中。该函数接受两个参数:startDate
和 endDate
,它们分别表示开始日期和结束日期。
在函数内部,我们首先创建了一个空的数组 dates
,该数组用于保存所有日期。然后,我们将开始日期和结束日期转换为毫秒,并分别保存在 startDateMs
和 endDateMs
变量中。
接下来,我们计算两个日期之间的毫秒差距,并将其保存在 differenceMs
变量中。在循环中,我们从开始日期开始,一天一天地遍历每个日期,直到遍历结束日期为止。我们使用 setCurrentDate()
方法来设置当前日期,并将其添加到数组中。
最后,我们返回保存所有日期的 dates
数组。
该函数可以按如下方式调用:
var startDate = new Date("2022-01-01");
var endDate = new Date("2022-01-31");
var dates = getAllDates(startDate, endDate);
// Output the dates array
console.log(dates);
在上面的代码中,我们创建了一个 startDate
变量和一个 endDate
变量,它们分别表示开始日期和结束日期。然后,我们调用 getAllDates()
函数,并将这两个变量作为参数传递。最后,我们将返回的 dates
数组输出到控制台中。
例如,上面的代码将返回一个包含 31 个日期对象的数组,这些日期对象代表从 2022 年 1 月 1 日到 2022 年 1 月 31 日之间的每一天。