如何将过去一周的天数包含在 datepicker/calendar 中?
How to include the days for the past week in a datepicker/calendar?
我正在尝试创建一个 header 格式的日期选择器,其中的天数被缩写以匹配天数。
本月有 31 天,打印出来的是 31 天,但是 12 月 1 日是上周五开始的,我希望能够显示过去一周的天数或者只显示数字1表示12月1日在当前日期下开始迭代,在这种情况下1应该在F下,如下图所示:
这是我想出的代码:
var currentMonthDays = [];
var monthDays = dateFns.eachDay(dateFns.startOfMonth(new Date()), dateFns.lastDayOfMonth(new Date()));
for(var day in monthDays){
currentMonthDays.push(dateFns.format(monthDays[day], 'D'));
}
var numbers = document.querySelector('.picker-days');
for(var key in currentMonthDays){
var htmlString = '<span class="picker-daysNumber">' + currentMonthDays[key] + '</span>';
numbers.insertAdjacentHTML('beforeend', htmlString);
}
我不确定它是否有问题,我必须进一步检查,但这是我能够想出的解决问题的方法。
首先,我得到了 12 月第一周的日期,然后我检查了第一周第一天和该月第一天之间的天数差异。
12月第一周的第一天是26日,星期日。
12 月 1 日是星期五。
天数相差 5 天,所以我只是将空值推送到 currentMonthDays 数组,到目前为止它正在运行。也许我会得到日期编号。
// organize the days in the calendar to be under the correct day abbreviation
var firstDayOfTheMonth = new Date(this.currentMonthDays.original[0]);
var monthWeekStartedOn = startOfWeek(new Date(this.currentMonthDays.original[0]));
var dayDiff = differenceInDays(firstDayOfTheMonth, monthWeekStartedOn);
for(var i = 0; i < dayDiff; i++){
this.currentMonthDays.formatted.unshift(' ')[i];
}
console.log(this.currentMonthDays);
我正在尝试创建一个 header 格式的日期选择器,其中的天数被缩写以匹配天数。
本月有 31 天,打印出来的是 31 天,但是 12 月 1 日是上周五开始的,我希望能够显示过去一周的天数或者只显示数字1表示12月1日在当前日期下开始迭代,在这种情况下1应该在F下,如下图所示:
这是我想出的代码:
var currentMonthDays = [];
var monthDays = dateFns.eachDay(dateFns.startOfMonth(new Date()), dateFns.lastDayOfMonth(new Date()));
for(var day in monthDays){
currentMonthDays.push(dateFns.format(monthDays[day], 'D'));
}
var numbers = document.querySelector('.picker-days');
for(var key in currentMonthDays){
var htmlString = '<span class="picker-daysNumber">' + currentMonthDays[key] + '</span>';
numbers.insertAdjacentHTML('beforeend', htmlString);
}
我不确定它是否有问题,我必须进一步检查,但这是我能够想出的解决问题的方法。
首先,我得到了 12 月第一周的日期,然后我检查了第一周第一天和该月第一天之间的天数差异。
12月第一周的第一天是26日,星期日。 12 月 1 日是星期五。
天数相差 5 天,所以我只是将空值推送到 currentMonthDays 数组,到目前为止它正在运行。也许我会得到日期编号。
// organize the days in the calendar to be under the correct day abbreviation
var firstDayOfTheMonth = new Date(this.currentMonthDays.original[0]);
var monthWeekStartedOn = startOfWeek(new Date(this.currentMonthDays.original[0]));
var dayDiff = differenceInDays(firstDayOfTheMonth, monthWeekStartedOn);
for(var i = 0; i < dayDiff; i++){
this.currentMonthDays.formatted.unshift(' ')[i];
}
console.log(this.currentMonthDays);