我想获取一个对象数组,其中包括作为关键日期的月份和作为对象和数组子项的日期,这将是月份的值
我想要这样的东西
var fullYearCalendar = [
January:[{date:'1',day:'tue'},
{date:'2',day:'wed'},
{date:'3',day:'thr'},
and so on...
],
February:[{date:'8',day:'sun'},
{date:'9',day:'mon'},
{date:'10',day:'tue'},
and so on...
],
and so on...
]
最佳答案
使用 Date 对象可以很容易地做到这一点。您需要牢记的一件事是闰年(包含 366 天):
let fullYearCalendar = {};
// initialize date to Jan 1, 1900
let date = new Date(0, 0, 1);
// day length in milliseconds
let dayLength = 1000 * 60 * 60 * 24;
// year length in days (account for leap years)
let year = date.getFullYear();
let yearLength = ((year % 4) || (!(year % 100) && (year % 400))) ? 365 : 366;
for (let i = 0; i < yearLength; i ++) {
// determine month
let month = date.toLocaleDateString('en-US', {month: 'long'});
// determine weekday
let weekday = date.toLocaleDateString('en-US', {weekday: 'short'});
// initialize month if it does not exist
if (!fullYearCalendar[month])
fullYearCalendar[month] = [];
// add current day to month
fullYearCalendar[month].push({
date: date.getDate(),
day: weekday.toLowerCase()
})
// increment date by one day
date = new Date(date.getTime() + dayLength);
}
console.log(fullYearCalendar);
关于javascript - 如何创建带有日期和日期的全年月份的数组对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59181374/