<script language=javascript>
//本周第一天
function showWeekFirstDay()
{
var Nowdate=new Date();
var WeekFirstDay=new Date(Nowdate-(Nowdate.getDay()-1)*86400000);
return WeekFirstDay;
}
//本周最后一天
function showWeekLastDay()
{
var Nowdate=new Date();
var WeekFirstDay=new Date(Nowdate-(Nowdate.getDay()-1)*86400000);
var WeekLastDay=new Date((WeekFirstDay/1000+6*86400)*1000);
return WeekLastDay;
}//上周第一天
function showPreviousFirstWeekDay()
{
var WeekFirstDay=showWeekFirstDay()
return new Date(WeekFirstDay-86400000*7)
}
//上周最后一天
function showPreviousLastWeekDay()
{
var WeekFirstDay=showWeekFirstDay()
return new Date(WeekFirstDay-86400000)
}//下周第一天
function showNextFirstWeekDay()
{
var MonthFirstDay=showWeekLastDay()
return new Date((MonthFirstDay/1000+86400)*1000)
}
//下周最后一天
function showNextLastWeekDay()
{
var MonthFirstDay=showWeekLastDay()
return new Date((MonthFirstDay/1000+7*86400)*1000)
}function setDate(num){if(num==6){
document.all.dateDate.value=showPreviousFirstWeekDay();
document.all.dateDate2.value=showPreviousLastWeekDay();
}
if(num==7){
document.all.dateDate.value=showNextFirstWeekDay();
document.all.dateDate2.value=showNextLastWeekDay();
}}
function Date.prototype.toString(){
return this.getFullYear()+"-"+(this.getMonth()+1)+"-"+this.getDate();
}
</script>
<input name=dateDate type=text>-><input name=dateDate2 type=text><input name=haha type=button value="上一周" onclick=setDate(6)>&nbsp;<input name=haha type=button value="下一周" onclick=setDate(7)>&nbsp;

解决方案 »

  1.   

    关于日期的常见操作
    http://community.csdn.net//Expert/TopicView2.asp?id=4360247&datebasetype=now
    js FAQ贴
    http://community.csdn.net//Expert/TopicView2.asp?id=4356360&datebasetype=now
    DHTML手册,js手册,dom手册下载
    http://community.csdn.net//Expert/TopicView2.asp?id=4356325&datebasetype=now
      

  2.   

    我结合二楼的把改成这样了,虽然是可以获得上一周和下一周了,但是不能通过连续调用该函数,就可以连续的向后翻,比如每点一下“下一周”,就向后再加一周。我这段代码中的计算本月的函数可以做到这样。我照计算本月的方法加上了currentweek这个算量,但不知道怎样可以做到那个效果望高手赐教。var currentmonth,currentday,currentweek
    currentmonth=0
    currentday=0
    currentweek=0function showToDay()
    {
    var Nowdate=new Date();
    M=Number(Nowdate.getMonth())+1
    return Nowdate.getFullYear()+"-"+M+"-"+Nowdate.getDate();
    }function showWeekFirstDay(cases)
    {
    switch (cases)
    {
    case "" :
    var Nowdate=new Date();
    var WeekFirstDay=new Date(Nowdate-(Nowdate.getDay()-1)*86400000);
    return WeekFirstDay;
    break;
    case "n" :
    var MonthFirstDay=showWeekLastDay("")
    var WeekFirstDay=new Date((MonthFirstDay/1000+86400)*1000);
    return WeekFirstDay;
    break;
    case "p" :
    var WeekFirstDay=showWeekFirstDay("")
    var WeekFirstDay=new Date(WeekFirstDay-86400000*7);
    return WeekFirstDay;
    break;
    }
    }function showWeekLastDay(cases)
    {
    switch (cases)
    {
    case "" :
    var Nowdate=new Date();
    var WeekFirstDay=new Date(Nowdate-(Nowdate.getDay()-1)*86400000);
    var WeekLastDay=new Date((WeekFirstDay/1000+6*86400)*1000);
    return WeekLastDay;
    break;
    case "n" :
    var MonthFirstDay=showWeekLastDay("")
    var WeekLastDay=new Date((MonthFirstDay/1000+7*86400)*1000);
    return WeekLastDay;
    break;
    case "p" :
    var WeekFirstDay=showWeekFirstDay("")
    var WeekLastDay=new Date(WeekFirstDay-86400000);
    return WeekLastDay;
    break;
    }
    }function showMonthFirstDay(cases)
    {
    var Nowdate=new Date();
    switch (cases)
    {
    case "" :
    var MonthFirstDay=new Date(Nowdate.getFullYear(),Nowdate.getMonth(),1);
    return MonthFirstDay;
    break;
    case "n" :
    var MonthFirstDay=new Date(Nowdate.getFullYear(),Nowdate.getMonth()+1+currentmonth,1);
    return MonthFirstDay;
    break;
    case "p" :
    var MonthFirstDay=new Date(Nowdate.getFullYear(),Nowdate.getMonth()-1+currentmonth,1);
    return MonthFirstDay;
    break;
    }
    }function showMonthLastDay(cases)
    {
    var Nowdate=new Date();
    switch (cases)
    {
    case "" :
    currentmonth=0;
    currentday=0;
    var MonthNextFirstDay=new Date(Nowdate.getFullYear(),Nowdate.getMonth()+1+currentmonth,1);
    var MonthLastDay=new Date(MonthNextFirstDay-86400000);
    return MonthLastDay;
    break; case "n" :
    var MonthNextFirstDay=new Date(Nowdate.getFullYear(),Nowdate.getMonth()+2+currentmonth,1);
    var MonthLastDay=new Date(MonthNextFirstDay-86400000);
    return MonthLastDay;
    break;
    case "p" :
    var MonthNextFirstDay=new Date(Nowdate.getFullYear(),Nowdate.getMonth()+currentmonth,1);
    var MonthLastDay=new Date(MonthNextFirstDay-86400000);
    return MonthLastDay;
    break;
    }
    }
      

  3.   

    可以连续计算下一月第一天和最后天的调用方法是在调用函数的代码后再加一个currentmonth++;或currentmonth--;就可以了。但我不知道该把我加入的currentweek变量放在以上代码中的哪里去计算,可以做到像连续计算像上一月或连续计算下一月那样的效果。