假定周一为一周开始d = new Date;
w = d.getDay();
n = (w == 0 ? 7 : w) - 1;
d.setDate(d.getDate() - n);
for(i=0; i<7; i++) {
  see();
  d.setDate(d.getDate() + 1);
}function see() {
  document.write(d.getYear() + '-' + (d.getMonth()+1) + '-' + d.getDate() + ' ' + d.getDay() + '<br>');
}
2014-7-21 1
2014-7-22 2
2014-7-23 3
2014-7-24 4
2014-7-25 5
2014-7-26 6
2014-7-27 0

解决方案 »

  1.   

    function format(date){
    var year=date.getFullYear();
    var month=date.getMonth()+1;
    var day=date.getDate();
    return year+'年'+(month>9?month:'0'+month)+'月'+(day>9?day:'0'+day)+'日';
    }
    var oneDay=24*3600*1000;
    function cal(ago){
    var d=new Date();
    if(ago){
    d=new Date(+d+ago*oneDay);
    }
    var week=d.getDay();
    var arr=[];
    d=+d;
    for(var i=0;i<7;i++){
    var k=d+(i-week)*oneDay;
    arr.push(format(new Date(k)));
    };
    return arr;
    }
    alert(cal());
    类似这样试试
      

  2.   

    是的
    日递增是 d.setDate(d.getDate() + 1);
    所以跨月跨年都不会有问题