我想打印这样的东西(7 天日历),但可以从我想要的任何日期开始。
Monday, 1 January 2011
Tuesday, 2 January 2011
Wednesday, 3 January 2011
Thursday, 4 January 2011
Friday, 5 January 2011
Saturday, 6 January 2011
Sunday, 7 January 2011
例如,我想从 2 月 22 日开始显示接下来的 7 天。不知道如何处理。
我想打印这样的东西(7 天日历),但可以从我想要的任何日期开始。
Monday, 1 January 2011
Tuesday, 2 January 2011
Wednesday, 3 January 2011
Thursday, 4 January 2011
Friday, 5 January 2011
Saturday, 6 January 2011
Sunday, 7 January 2011
例如,我想从 2 月 22 日开始显示接下来的 7 天。不知道如何处理。
这似乎是您正在寻找的:
function GetDates(startDate, daysToAdd) {
var aryDates = [];
for (var i = 0; i <= daysToAdd; i++) {
var currentDate = new Date();
currentDate.setDate(startDate.getDate() + i);
aryDates.push(DayAsString(currentDate.getDay()) + ", " + currentDate.getDate() + " " + MonthAsString(currentDate.getMonth()) + " " + currentDate.getFullYear());
}
return aryDates;
}
function MonthAsString(monthIndex) {
var d = new Date();
var month = new Array();
month[0] = "January";
month[1] = "February";
month[2] = "March";
month[3] = "April";
month[4] = "May";
month[5] = "June";
month[6] = "July";
month[7] = "August";
month[8] = "September";
month[9] = "October";
month[10] = "November";
month[11] = "December";
return month[monthIndex];
}
function DayAsString(dayIndex) {
var weekdays = new Array(7);
weekdays[0] = "Sunday";
weekdays[1] = "Monday";
weekdays[2] = "Tuesday";
weekdays[3] = "Wednesday";
weekdays[4] = "Thursday";
weekdays[5] = "Friday";
weekdays[6] = "Saturday";
return weekdays[dayIndex];
}
var startDate = new Date();
var aryDates = GetDates(startDate, 7);
console.log(aryDates);
结果(截至今天):
["Thursday, 5 April 2012",
"Friday, 6 April 2012",
"Saturday, 7 April 2012",
"Sunday, 8 April 2012",
"Monday, 9 April 2012",
"Tuesday, 10 April 2012",
"Wednesday, 11 April 2012",
"Thursday, 12 April 2012"]
这是一个工作小提琴。
这是我使用Moment.js的解决方案
未来 7 天
let days = [];
let daysRequired = 7
for (let i = 1; i <= daysRequired; i++) {
days.push( moment().add(i, 'days').format('dddd, Do MMMM YYYY') )
}
console.log(days)
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>
以防万一您需要前 7 天
let days = [];
let daysRequired = 7
for (let i = daysRequired; i >= 1; i--) {
days.push( moment().subtract(i, 'days').format('dddd, Do MMMM YYYY') )
}
console.log(days)
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>
初始日期:
var startingDay = new Date(year, month, day);
整整一周startingDay
:
var thisDay = new Date();
for(var i=0; i<7; i++) {
thisDay.setDate(startingDay.getDate() + i);
console.log(thisDay.format());
}
格式化函数:
Date.prototype.format = function(){
var months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
var days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
return days[this.getDay()]
+", "
+this.getDate()
+" "
+months[this.getMonth()]
+" "
+this.getFullYear();
};
var feb22 = new Date(2012, 1, 22);
var feb23 = new Date(feb22.getTime() + 1000*60*60*24);
...等等
您可以将变量 dateString 设置为您想要的任何值,并在循环中增加日期。然后你会得到日期,但我认为格式不同。
var dateString = '22 Feb 2012';
var actualDate = new Date(dateString);
var newDate;
for(var i=1; i<=7; i++){
newDate = new Date(actualDate.getFullYear(), actualDate.getMonth(), actualDate.getDate()+i);
}
如果您需要从今天开始接下来的 7 个工作日
const isWeekday = (date) => {
return date.weekday()!==0 && date.weekday()!==6
}
const weekdays=[];
let numberOfDaysRequired = 7
let addDaysBy = 1
moment.locale('en')
while(weekdays.length < numberOfDaysRequired)
{
const d = moment().add(addDaysBy, 'days')
if(isWeekday(d))
{
weekdays.push(d.format('dddd, Do MMMM YYYY'))
}
addDaysBy++;
}
console.log(weekdays)
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>