Javascript 如何从一个月的日期开始计算星期几?
我想在Javascript中查找一周中某一天的所有日期,例如八月中所有周一的日期。我找不到必要的逻辑,请帮忙Javascript 如何从一个月的日期开始计算星期几?,javascript,Javascript,我想在Javascript中查找一周中某一天的所有日期,例如八月中所有周一的日期。我找不到必要的逻辑,请帮忙 谢谢如果您使用Moment.js,您可以使用.day()函数滚动一个月中的几天,注意哪些天与目标日期相对应: 如果你做了大量的日期工作,我衷心推荐Momente.js,因为它提供了大量的日期计算、比较、格式化、解析等功能。类似这样的功能 function getDays(year, month, day) { var last = (new Date(year, month -
谢谢如果您使用Moment.js,您可以使用.day()函数滚动一个月中的几天,注意哪些天与目标日期相对应: 如果你做了大量的日期工作,我衷心推荐Momente.js,因为它提供了大量的日期计算、比较、格式化、解析等功能。类似这样的功能
function getDays(year, month, day) {
var last = (new Date(year, month - 1, 0)).getDate(),
days = {
'sunday' : 0,
'monday' : 1,
'tuesday' : 2,
'wednesday' : 3,
'thursday' : 4,
'friday' : 5,
'saturday' : 6
},
dd = days[day],
d = new Date(year, month - 1, 1),
matches = [];
for (var i=1; i<=last; i++) {
d.setDate(i);
if (d.getDay() == dd) matches.push(i)
}
return matches;
}
getDays(2014, 8, 'saturday'); // [2, 9, 16, 23, 30] <- dates that are saturday
函数getDays(年、月、日){
var last=(新日期(年,月-1,0)).getDate(),
天数={
“星期日”:0,
"星期一":,
"星期二":二,,
"星期三":,
"星期四":,
"星期五":五,,
“星期六”:6
},
dd=天[天],
d=新日期(年,月-1,1),
匹配项=[];
对于(var i=1;i该方法返回给定的星期几。它返回0表示星期天,1表示星期一等。您可以检查该值,查看一个月内的每个日期是否与指定的日期匹配。要获取特定月份内的所有星期一,您可以执行以下操作:
var daysInMonth = function(year, month, day) {
var currentDate = new Date(year, month);
// Find where the first day in the month is relative to 'day'
var delta = day - currentDate.getDay();
// If 'day' is earlier in the week, move to the next week
if (delta < 0) {
delta += 7;
}
var days = [];
currentDate.setDate(currentDate.getDate() + delta);
while (currentDate.getMonth() === month) {
days.push(currentDate.getDate());
currentDate.setDate(currentDate.getDate() + 7);
}
return days;
};
console.log(daysInMonth(2014, 7 /* August */, 1 /* Monday */));
var daysInMonth=函数(年、月、日){
var currentDate=新日期(年、月);
//查找月份的第一天相对于“天”的位置
var delta=day-currentDate.getDay();
//如果“天”在本周的早些时候,则转到下一周
if(δ<0){
δ+=7;
}
风险值天数=[];
currentDate.setDate(currentDate.getDate()+delta);
while(currentDate.getMonth()==月){
推送(currentDate.getDate());
currentDate.setDate(currentDate.getDate()+7);
}
返程天数;
};
console.log(daysInMonth(2014年8月7日,星期一);
此代码查找与您关心的星期几相匹配的当月第一个日期。然后,它会在每周循环,将该周的日期添加到列表中,直到您到达月末。到目前为止,您尝试过什么吗?这与我想要的最接近。谢谢