📌  相关文章
📜  如何将所有日期存储在 JavaScript 中给定两个日期之间的数组中?(1)

📅  最后修改于: 2023-12-03 14:53:04.157000             🧑  作者: Mango

如何将所有日期存储在 JavaScript 中给定两个日期之间的数组中

如果你需要获取两个日期之间的所有日期,并将它们保存在 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 数组中。该函数接受两个参数:startDateendDate,它们分别表示开始日期和结束日期。

在函数内部,我们首先创建了一个空的数组 dates,该数组用于保存所有日期。然后,我们将开始日期和结束日期转换为毫秒,并分别保存在 startDateMsendDateMs 变量中。

接下来,我们计算两个日期之间的毫秒差距,并将其保存在 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 日之间的每一天。