javascript获取当天日期,计算出该天所属周,列出本周从周一至周日的所有日期,求大神帮助!

我原本的想法是获取当天日期,判断是星期几,比如是星期五,那么用该天日期减去4就是周一的日期,加上2就是周日的日期,以此类推。但是如果本周跨两个月的话就出现了问题,月份是30天进一位,且每月的天数不一,这样的话就要判断月份是几月,还要判断是闰年、平年。这样去实现就太复杂了,所以想问大神们有没有什么其他简便做法,写个例子最好!输出效果如下图所示,主要是下图红框中数据获取的实现。

【代码】
// 获取当前星期的星期一的日期,返回的是一个Date对象。
function getMonDate()
{
var d=new Date(),
day=d.getDay(),
date=d.getDate();
if(day==1)
return d;
if(day==0)
d.setDate(date-6);
else
d.setDate(date-day+1);
return d;
}
// 0-6转换成中文名称
function getDayName(day)
{
var day=parseInt(day);
if(isNaN(day) || day<0 || day>6)
return false;
var weekday=["星期天","星期一","星期二","星期三","星期四","星期五","星期六"];
return weekday[day];
}
// d是当前星期一的日期对象
var d=getMonDate();
var arr=[];
for(var i=0; i<7; i++)
{
arr.push(d.getFullYear()+'年'+(d.getMonth()+1)+'月'+d.getDate()+'日 ('+getDayName(d.getDay())+')');
d.setDate(d.getDate()+1);
}
【显示】
2013年3月18日 (星期一)
2013年3月19日 (星期二)
2013年3月20日 (星期三)
2013年3月21日 (星期四)
2013年3月22日 (星期五)
2013年3月23日 (星期六)
2013年3月24日 (星期天)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-18
按你说的方法做没问题。var date = new Date(); date.setDate(date.getDate() - 1)之后月份年份会自动变化的,所以不用担心跨月跨年。
例如 var date = new Date(); date.setDate(1);
现在它是2013.3.1了,date.setDate(date.getDate() - 1);
现在它是2013.2.28了本回答被提问者采纳
相似回答