如果给出了日期(例如“2014-01-07”),我想访问该特定月份(2014年1月)并获取星期六的日期编号那个月和星期日。
在这种情况下, 4,11,18,25 - 周六 5,12,19,26 - 星期日
我想使用java脚本,因为这是一个前端开发。 帮我解决这个问题.Thnkz
答案 0 :(得分:6)
尝试使用 FIDDLE
var d = new Date();
var getTot = daysInMonth(d.getMonth(),d.getFullYear()); //Get total days in a month
var sat = new Array(); //Declaring array for inserting Saturdays
var sun = new Array(); //Declaring array for inserting Sundays
for(var i=1;i<=getTot;i++){ //looping through days in month
var newDate = new Date(d.getFullYear(),d.getMonth(),i)
if(newDate.getDay()==0){ //if Sunday
sun.push(i);
}
if(newDate.getDay()==6){ //if Saturday
sat.push(i);
}
}
console.log(sat);
console.log(sun);
function daysInMonth(month,year) {
return new Date(year, month, 0).getDate();
}
在 sat 和 sun Array()
中,您可以获得特定月份的星期六和星期日
答案 1 :(得分:2)
使用getDate方法很容易:
var my_date = "2014-01-07".split('-')
var year = parseInt(my_date[0]);
var month = parseInt(my_date[1])-1;
var saturdays = [];
var sundays = [];
for (var i = 0; i <= new Date(year, month, 0).getDate(); i++)
{
var date = new Date(year, month, i);
if (date.getDay() == 6)
{
saturdays.push(date);
}
else if (date.getDay() == 0)
{
sundays.push(date);
}
};
console.log(sundays, saturdays);
答案 2 :(得分:1)
根据您的描述 你可以使用 -
var sat = new Date(input.getFullYear(), input.getMonth(), 6 - input.getDate() + getDay());
var sun = new Date(input.getFullYear(), input.getMonth(), getDay() + (input.getDate() - 6));
将该代码放入for循环中并添加7直到月更改。 并减去7直到月变化。
javascript输入日期将为您提供月份和年份。
答案 3 :(得分:1)
var d = new Date();
var pred = new Date(d.getFullYear(),d.getMonth()+1,0).getDate();
var nowd;
var sat_array = "";
var sun_array = "";
for (i=1;i<=pred;i++) {
try {
console.log(d.getFullYear()+ "-" + (d.getMonth()+1) + "-" + i);
nowd = new Date(d.getFullYear()+ "-" + (d.getMonth()+1) + "-" + i)
if (nowd.getUTCDay() == 5)
{
sat_array = sat_array + "," + i;
}
if (nowd.getUTCDay() == 6)
{
sun_array = sun_array + "," + i;
}
}
catch(e) {
return;
}
}
console.log("SAT list : " +sat_array);
console.log("SUN list : " +sun_array);