因为使用需要,找了一段代码,没想到还真能找到,而且别的地方也没有看到。试验了一下,确实是可以用的。原文没有完善的注解,我已经在代码中添加了。 对于不会的菜鸟,特别说明下: 这个代码可以用来显示学校的教学周或工作周。 开始时间设定为开学第一周星期天的日期(因为星期天是每周的第一天),结束时间即本学期最后一天。 代码中默认设置为今天,即今天是属于这个学期第几周。如果要算指定某天是属于第几周,就指定计算的日期,相应地,去掉代码第七行前的英文隔音逗点并在第六行前加上逗点。代码行前添加逗点是备注,使代码失效。高手可以无视此说明。 测试了一下,貌似只支持IE内核的浏览器,有会的童鞋可以修改下交流。 代码版权归原作者。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<script language="vbscript"> <!-- Dim dstart,dcurrent,dend,dtemp,dweek,dweek1 dstart=cdate("2010-8-30") '开始时间-第一周 dend=cdate("2011-1-20") '结束时间-最后一周 dcurrent=date() '按当前日期计算 'dcurrent=cdate("2211-11-1") '指定计算的日期 if datediff("d",dend,dcurrent)<0 and datediff("d",dstart,dcurrent)>0 then '判断今天是否在本学期内 dweek=weekday(dstart) dweek1=weekday(dcurrent) dtemp=dateadd("d",dcurrent,dweek-dweek1) document.write(dcurrent & ",今天是本学期的第" & datediff("d",dstart,dtemp)\7+1 & "周") else document.write("祝师生们假期快乐!") End if --> </script> |
2011年10月15日补充:发现一段兼容几乎所有浏览器的代码,在我的13个浏览器中均测试通过。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<script language="javascript"> Date.prototype.dateDiff = function(interval,objDate){ //若参数不足或 objDate 不是日期物件则回传 undefined if(arguments.length<2||objDate.constructor!=Date) return undefined; switch (interval) { //计算周差 case "w":return parseInt((objDate-this)/(86400000*7)+1); //输入有误 default:return undefined; } } //下面是时间参数,设定sDT为开始第一周的星期天,设定eDT则计算该日期是sDT起第几周,留空则计算计算机当前时间 var sDT = new Date("2011/08/28 00:00:00"); var eDT = new Date(); document.writeln("开学第【"+sDT.dateDiff("w",eDT)+"】周"); </script> |