用js计算本周日期

JavaScript023

用js计算本周日期,第1张

<html>

<head>

<script type="text/javascript">

function showdate()

{

var now=new Date()

var start=new Date()

var end=new Date()

var n=now.getDay()

start.setDate(now.getDate()-n+1)

end.setDate(now.getDate()-n+7)

start = start.getFullYear() + "-" + (start.getMonth()+1) + "-" + start.getDate()

end = end.getFullYear() + "-" + (end.getMonth()+1) + "-" + end.getDate()

alert("本周开始于:"+start+",结束于"+end)

}

</script>

</head>

<body>

<input type="button" onclick="showdate()" value="本周按钮" name="本周按钮">

</body>

</html>

//

定义变量d为当年的1月1日0点

var

d

=

new

Date()

d.setFullYear(d.getFullYear(),0,1)

//

定义day为当年1月1日的星期数(0为星期天,1为星期1,6为星期6)

var

day

=

d.getDay()

//

定义fistweekleft为第一周剩余的天数,此处认为星期一是一周的第一天,如果将星期天定义为一周的第一天,请写成fistweekleft

=

(6-day)%6

var

fistweekleft

=

(7-day)%7

//

将d赋值为第二周的第一天,1+fistweekleft号为第一周最后天,1+fistweekleft+1为第二周第一天

d.setFullYear(d.getFullYear(),0,1+fistweekleft+1)

//

定义变量d1为当天

var

d1

=

new

Date()

//

当前时间与当年第二周第一天的毫秒数之差除以一周的毫秒数并取整即为当前日期距本的第二周已过的周数

//

结果加上2即为当天为本年的第几周(如果在一周的第一天的0点运行此程序,结果会比实际值大1,此种情况请自行处理)

alert(2+parseInt((d1.getTime()-d.getTime())/1000/60/60/24/7))

var date = new Date()

date.setDate(date.getDate()-date.getDay()+1)

$("#year option:contains("+date.getFullYear()+")").prop("selected",true)

$("#month option").eq(date.getMonth()+1).prop("selected",true)

$(#day option").eq(date.getDate()).prop("selected",true)

date.setDate(date.getDate()+7)

$("#year1 option:contains("+date.getFullYear()+")").prop("selected",true)

$("#month1 option").eq(date.getMonth()+1).prop("selected",true)

$(#day1 option").eq(date.getDate()).prop("selected",true)

顺便说一句:现在通常的做法(也是国际惯例),是把星期日作为一周的开始,而星期六则是周末,如果你想这么做,只需把第二行后面的+1去掉即可。