使用 JavaScript 获取一个月中的所有日期
Get all Dates in a Month using JavaScript
获取一个月内的所有日期:
- 创建一个新的 Date 对象来存储给定月份的第一个日期。
- 遍历特定月份的所有日期。
- 将每个
Date
对象推送到一个数组。
索引.js
function getAllDaysInMonth(year, month) { const date = new Date(year, month, 1); const dates = []; while (date.getMonth() === month) { dates.push(new Date(date)); date.setDate(date.getDate() + 1); } return dates; } const now = new Date(); // 👇️ all days of the current month console.log(getAllDaysInMonth(now.getFullYear(), now.getMonth())); const date = new Date('2022-03-24'); // 👇️ All days in March of 2022 console.log(getAllDaysInMonth(date.getFullYear(), date.getMonth()));
我们创建了一个可重用的函数,它接受年份和月份(零索引)并返回给定月份中的所有日期。
我们传递给
Date()
构造函数的 3 个参数是:
year
– 代表日期年份的四位数字。month
– 代表月份的零索引数字(0 = 一月,1 = 二月,等等)。day of the month
– 日期的月份中的第几天。
我们创建了一个Date
对象来存储该月第一天的日期。
getMonth方法返回指定日期的
月份作为从零开始的值(一月 = 0,十二月 = 11)。
我们希望继续迭代并将日期推入
dates
数组,同时传入的月份等于Date
对象中的月份。setDate
方法更改给定Date
实例的月份
日期。
在每次迭代中,我们将日期设置为该月的第二天,直到到达下个月。
一旦到达下个月,
while
循环中的条件不再满足,dates
函数返回数组。如果你有一个日期字符串而不是一个Date
对象,你可以将字符串传递给Date()
构造函数以获取一个Date
对象,从中你可以在调用getAllDaysInMonth
函数时从中获取年和月。
索引.js
function getAllDaysInMonth(year, month) { const date = new Date(year, month, 1); const dates = []; while (date.getMonth() === month) { dates.push(new Date(date)); date.setDate(date.getDate() + 1); } return dates; } const date = new Date('2022-03-24'); // 👇️ All days in March of 2022 console.log(getAllDaysInMonth(date.getFullYear(), date.getMonth()));
该getFullYear
方法返回给定日期的四位数年份,该
getMonth
方法返回月份的从零开始的值。