<SCRIPT LANGUAGE="JavaScript"> <!-- function isOneWeek(d1, d2) { var n1 = Date.parse(d1.replace(/-/g, "/")); var n2 = Date.parse(d2.replace(/-/g, "/")); if(isNaN(n1) || isNaN(n2)) {alert("Your date is wrong!"); return false;} if(Math.abs(n1-n2)>1000*60*60*24*7) return false; var max = Math.max(n1, n2); var min = Math.min(n1, n2); return (max - ("7123456".charAt(new Date(max).getDay())*24*60*60*1000))<min; }var d1 = "2005-12-28"; var d2 = "2006-01-01"; alert(d1 +" 与 "+ d2 +" 是一周内的日期? \n\n"+ isOneWeek(d1, d2)); //--> </SCRIPT>
var max = Math.max(n1, n2); var min = Math.min(n1, n2); return (max - ("7123456".charAt(new Date(max).getDay())*24*60*60*1000))<min; 这3句是验证什么的啊! if(Math.abs(n1-n2)>1000*60*60*24*7) return false;这句不是已经验证了是不是在一周吗?
哦,我有点理解了 if(Math.abs(n1-n2)>1000*60*60*24*7) return false;只是大概判断两个日期是不是相差7天 var max = Math.max(n1, n2); var min = Math.min(n1, n2); return (max - ("7123456".charAt(new Date(max).getDay())*24*60*60*1000))<min;这个是判断是不是在一周里。 我说的对不对啊!梅花雪!
//照着梅花雪前辈的程序改的//如果把周日作为星期的开始,一般是欧美国家习惯 function isOneWeek2(d1, d2) { var n1 = Date.parse(d1.replace(/-/g, "/")); var n2 = Date.parse(d2.replace(/-/g, "/")); var d1=new Date(n1); var d2=new Date(n2); if(isNaN(n1) || isNaN(n2)) {alert("Your date is wrong!"); return false;} //判断两个日期所在(欧美国家习惯)星期的Sunday是不是同一天 return (n1-(d1.getDay())*24*60*60*1000)==(n2-(d2.getDay())*24*60*60*1000) }//如果把周一作为星期的开始 function isOneWeek3(d1, d2) { var n1 = Date.parse(d1.replace(/-/g, "/")); var n2 = Date.parse(d2.replace(/-/g, "/")); var d1=new Date(n1); var d2=new Date(n2); if(isNaN(n1) || isNaN(n2)) {alert("Your date is wrong!"); return false;}//判断两个日期所在星期的星期一(的前一天)是不是同一天 return (n1-((d1.getDay()==0)?7:d1.getDay())*24*60*60*1000)==(n2-((d2.getDay()==0)?7:d2.getDay())*24*60*60*1000)}
http://community.csdn.net/Expert/topic/4360/4360247.xml?temp=4.659671E-02 我后来加了两个关于周的方法//新加的两个关于周数的方法 //根据当前日期所在年和周数返回周日的日期 Date.prototype.RtnByWeekNum = function (weekNum){ if(typeof(weekNum) != "number") throw new Error(-1,"RtnByWeekNum(weekNum)的参数是数字类型."); var date = new Date(this.getFullYear(),0,1); var week = date.getDay(); week = (week==0?7:week); return date.dateAfter(weekNum*7-week,1); } //根据日期返回该日期所在年的周数 Date.prototype.getWeekNum = function (){ var dat = new Date(this.getFullYear(),0,1); var week = dat.getDay(); week = (week==0?7:week); var days = this.calDateDistance(dat,"dd")+1; return ((days + 6 - this.getDay() - 7 + week)/7); } 根据返回值判断就可以了
以下给个思路:先取得两个日期所差的天数 Diff
if ( Diff > 7 || Diff < -7 )则不在同一周;
另外先取第一个日期是周几,先看getDay()对应的返回值:
值 星期
0 星期天
1 星期一
2 星期二
3 星期三
4 星期四
5 星期五
6 星期六
如果 getDay() + Diff 大于6 或小于0 则判断不在同一周。
<!--
function isOneWeek(d1, d2)
{
var n1 = Date.parse(d1.replace(/-/g, "/"));
var n2 = Date.parse(d2.replace(/-/g, "/"));
if(isNaN(n1) || isNaN(n2)) {alert("Your date is wrong!"); return false;}
if(Math.abs(n1-n2)>1000*60*60*24*7) return false;
var max = Math.max(n1, n2);
var min = Math.min(n1, n2);
return (max - ("7123456".charAt(new Date(max).getDay())*24*60*60*1000))<min;
}var d1 = "2005-12-28";
var d2 = "2006-01-01";
alert(d1 +" 与 "+ d2 +" 是一周内的日期? \n\n"+ isOneWeek(d1, d2));
//-->
</SCRIPT>
var min = Math.min(n1, n2);
return (max - ("7123456".charAt(new Date(max).getDay())*24*60*60*1000))<min;
这3句是验证什么的啊!
if(Math.abs(n1-n2)>1000*60*60*24*7) return false;这句不是已经验证了是不是在一周吗?
if(Math.abs(n1-n2)>1000*60*60*24*7) return false;只是大概判断两个日期是不是相差7天
var max = Math.max(n1, n2);
var min = Math.min(n1, n2);
return (max - ("7123456".charAt(new Date(max).getDay())*24*60*60*1000))<min;这个是判断是不是在一周里。
我说的对不对啊!梅花雪!
TO: yehan19811(野汉) 是的,就是要做这种判断
function isOneWeek2(d1, d2)
{
var n1 = Date.parse(d1.replace(/-/g, "/"));
var n2 = Date.parse(d2.replace(/-/g, "/"));
var d1=new Date(n1);
var d2=new Date(n2);
if(isNaN(n1) || isNaN(n2)) {alert("Your date is wrong!"); return false;}
//判断两个日期所在(欧美国家习惯)星期的Sunday是不是同一天
return (n1-(d1.getDay())*24*60*60*1000)==(n2-(d2.getDay())*24*60*60*1000)
}//如果把周一作为星期的开始
function isOneWeek3(d1, d2)
{
var n1 = Date.parse(d1.replace(/-/g, "/"));
var n2 = Date.parse(d2.replace(/-/g, "/"));
var d1=new Date(n1);
var d2=new Date(n2);
if(isNaN(n1) || isNaN(n2)) {alert("Your date is wrong!"); return false;}//判断两个日期所在星期的星期一(的前一天)是不是同一天
return (n1-((d1.getDay()==0)?7:d1.getDay())*24*60*60*1000)==(n2-((d2.getDay()==0)?7:d2.getDay())*24*60*60*1000)}
//根据当前日期所在年和周数返回周日的日期
Date.prototype.RtnByWeekNum = function (weekNum){
if(typeof(weekNum) != "number")
throw new Error(-1,"RtnByWeekNum(weekNum)的参数是数字类型.");
var date = new Date(this.getFullYear(),0,1);
var week = date.getDay();
week = (week==0?7:week);
return date.dateAfter(weekNum*7-week,1);
}
//根据日期返回该日期所在年的周数
Date.prototype.getWeekNum = function (){
var dat = new Date(this.getFullYear(),0,1);
var week = dat.getDay();
week = (week==0?7:week);
var days = this.calDateDistance(dat,"dd")+1;
return ((days + 6 - this.getDay() - 7 + week)/7);
}
根据返回值判断就可以了