复制代码 代码如下:
// javascript document 
//--------------------------------------------------- 
// 判断闰年 
//--------------------------------------------------- 
date.prototype.isleapyear = function() { 
return (0==this.getyear()%4&&((this.getyear()%100!=0)||(this.getyear()%400==0))); 
}
//--------------------------------------------------- 
// 日期格式化 
// 格式 yyyy/yyyy/yy/yy 表示年份 
// mm/m 月份 
// w/w 星期 
// dd/dd/d/d 日期 
// hh/hh/h/h 时间 
// mm/m 分钟 
// ss/ss/s/s 秒 
//--------------------------------------------------- 
// 对date的扩展,将 date 转化为指定格式的string 
// 月(m)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符, 
// 年(y)可以用 1-4 个占位符,毫秒(s)只能用 1 个占位符(是 1-3 位的数字) 
// 例子: 
// (new date()).format(yyyy-mm-dd hh:mm:ss.s) ==> 2006-07-02 08:09:04.423 
// (new date()).format(yyyy-m-d h:m:s.s) ==> 2006-7-2 8:9:4.18 
date.prototype.format = function(fmt) 
{ //author: meizz 
var o = { 
m+ : this.getmonth()+1, //月份 
d+ : this.getdate(), //日 
h+ : this.gethours(), //小时 
h+ : this.gethours(), //小时 
m+ : this.getminutes(), //分 
s+ : this.getseconds(), //秒 
q+ : math.floor((this.getmonth()+3)/3), //季度 
s : this.getmilliseconds() //毫秒 
}; 
if(/(y+)/.test(fmt)) 
fmt=fmt.replace(regexp.$1, (this.getfullyear()+).substr(4 - regexp.$1.length)); 
for(var k in o) 
if(new regexp((+ k +)).test(fmt)) 
fmt = fmt.replace(regexp.$1, (regexp.$1.length==1) ? (o[k]) : ((00+ o[k]).substr((+ o[k]).length))); 
return fmt; 
}
/** 
* 对date的扩展,将 date 转化为指定格式的string 
* 月(m)、日(d)、12小时(h)、24小时(h)、分(m)、秒(s)、周(e)、季度(q) 可以用 1-2 个占位符 
* 年(y)可以用 1-4 个占位符,毫秒(s)只能用 1 个占位符(是 1-3 位的数字) 
* eg: 
* (new date()).pattern(yyyy-mm-dd hh:mm:ss.s) ==> 2006-07-02 08:09:04.423 
* (new date()).pattern(yyyy-mm-dd e hh:mm:ss) ==> 2009-03-10 二 20:09:04 
* (new date()).pattern(yyyy-mm-dd ee hh:mm:ss) ==> 2009-03-10 周二 08:09:04 
* (new date()).pattern(yyyy-mm-dd eee hh:mm:ss) ==> 2009-03-10 星期二 08:09:04 
* (new date()).pattern(yyyy-m-d h:m:s.s) ==> 2006-7-2 8:9:4.18 
*/ 
date.prototype.pattern=function(fmt) { 
var o = { 
m+ : this.getmonth()+1, //月份 
d+ : this.getdate(), //日 
h+ : this.gethours()%12 == 0 ? 12 : this.gethours()%12, //小时 
h+ : this.gethours(), //小时 
m+ : this.getminutes(), //分 
s+ : this.getseconds(), //秒 
q+ : math.floor((this.getmonth()+3)/3), //季度 
s : this.getmilliseconds() //毫秒 
}; 
var week = { 
0 : /u65e5, 
1 : /u4e00, 
2 : /u4e8c, 
3 : /u4e09, 
4 : /u56db, 
5 : /u4e94, 
6 : /u516d 
}; 
if(/(y+)/.test(fmt)){ 
fmt=fmt.replace(regexp.$1, (this.getfullyear()+).substr(4 - regexp.$1.length)); 
} 
if(/(e+)/.test(fmt)){ 
fmt=fmt.replace(regexp.$1, ((regexp.$1.length>1) ? (regexp.$1.length>2 ? /u661f/u671f : /u5468) : )+week[this.getday()+]); 
} 
for(var k in o){ 
if(new regexp((+ k +)).test(fmt)){ 
fmt = fmt.replace(regexp.$1, (regexp.$1.length==1) ? (o[k]) : ((00+ o[k]).substr((+ o[k]).length))); 
} 
} 
return fmt; 
}
//+--------------------------------------------------- 
//| 求两个时间的天数差 日期格式为 yyyy-mm-dd 
//+--------------------------------------------------- 
function daysbetween(dateone,datetwo) 
{ 
var onemonth = dateone.substring(5,dateone.lastindexof ('-')); 
var oneday = dateone.substring(dateone.length,dateone.lastindexof ('-')+1); 
var oneyear = dateone.substring(0,dateone.indexof ('-'));
var twomonth = datetwo.substring(5,datetwo.lastindexof ('-')); 
var twoday = datetwo.substring(datetwo.length,datetwo.lastindexof ('-')+1); 
var twoyear = datetwo.substring(0,datetwo.indexof ('-')); 
var cha=((date.parse(onemonth+'/'+oneday+'/'+oneyear)- date.parse(twomonth+'/'+twoday+'/'+twoyear))/86400000); 
return math.abs(cha); 
}
//+--------------------------------------------------- 
//| 日期计算 
//+--------------------------------------------------- 
date.prototype.dateadd = function(strinterval, number) { 
var dttmp = this; 
switch (strinterval) { 
case 's' :return new date(dttmp.getfullyear(), (dttmp.getmonth()), dttmp.getdate(), dttmp.gethours(), dttmp.getminutes(), dttmp.getseconds()+number); //秒 
case 'n' :return new date(dttmp.getfullyear(), (dttmp.getmonth()), dttmp.getdate(), dttmp.gethours(), dttmp.getminutes()+number, dttmp.getseconds()); //分 
case 'h' :return new date(dttmp.getfullyear(), (dttmp.getmonth()), dttmp.getdate(), dttmp.gethours()+number, dttmp.getminutes(), dttmp.getseconds()); //时 
case 'd' :return new date(dttmp.getfullyear(), (dttmp.getmonth()), dttmp.getdate()+number, dttmp.gethours(), dttmp.getminutes(), dttmp.getseconds()); //天 
case 'w' :return new date(dttmp.getfullyear(), (dttmp.getmonth()), dttmp.getdate()+number*7, dttmp.gethours(), dttmp.getminutes(), dttmp.getseconds()); //周 
case 'q' :return new date(dttmp.getfullyear(), (dttmp.getmonth()) + number*3, dttmp.getdate(), dttmp.gethours(), dttmp.getminutes(), dttmp.getseconds());//季度 
case 'm' :return new date(dttmp.getfullyear(), (dttmp.getmonth()) + number, dttmp.getdate(), dttmp.gethours(), dttmp.getminutes(), dttmp.getseconds()); //月 
case 'y' :return new date((dttmp.getfullyear() + number), dttmp.getmonth(), dttmp.getdate(), dttmp.gethours(), dttmp.getminutes(), dttmp.getseconds()); //年 
} 
}
//+--------------------------------------------------- 
//| 比较日期差 dtend 格式为日期型或者 有效日期格式字符串 
//+--------------------------------------------------- 
date.prototype.datediff = function(strinterval, dtend) { 
var dtstart = this; 
if (typeof dtend == 'string' )//如果是字符串转换为日期型 
{ 
dtend = stringtodate(dtend); 
} 
switch (strinterval) { 
case 's' :return parseint((dtend - dtstart) / 1000); 
case 'n' :return parseint((dtend - dtstart) / 60000); 
case 'h' :return parseint((dtend - dtstart) / 3600000); 
case 'd' :return parseint((dtend - dtstart) / 86400000); 
case 'w' :return parseint((dtend - dtstart) / (86400000 * 7)); 
case 'm' :return (dtend.getmonth()+1)+((dtend.getfullyear()-dtstart.getfullyear())*12) - (dtstart.getmonth()+1); 
case 'y' :return dtend.getfullyear() - dtstart.getfullyear(); 
} 
}
//+--------------------------------------------------- 
//| 日期输出字符串,重载了系统的tostring方法 
//+--------------------------------------------------- 
date.prototype.tostring = function(showweek) 
{ 
var mydate= this; 
var str = mydate.tolocaledatestring(); 
if (showweek) 
{ 
var week = ['日','一','二','三','四','五','六']; 
str += ' 星期' + week[mydate.getday()]; 
} 
return str; 
}
//+--------------------------------------------------- 
//| 日期合法性验证 
//| 格式为:yyyy-mm-dd或yyyy/mm/dd 
//+--------------------------------------------------- 
function isvaliddate(datestr) 
{ 
var sdate=datestr.replace(/(^\s+|\s+$)/g,''); //去两边空格; 
if(sdate=='') return true; 
//如果格式满足yyyy-(/)mm-(/)dd或yyyy-(/)m-(/)dd或yyyy-(/)m-(/)d或yyyy-(/)mm-(/)d就替换为'' 
//数据库中,合法日期可以是:yyyy-mm/dd(2003-3/21),数据库会自动转换为yyyy-mm-dd格式 
var s = sdate.replace(/[\d]{ 4,4 }[\-/]{ 1 }[\d]{ 1,2 }[\-/]{ 1 }[\d]{ 1,2 }/g,''); 
if (s=='') //说明格式满足yyyy-mm-dd或yyyy-m-dd或yyyy-m-d或yyyy-mm-d 
{ 
var t=new date(sdate.replace(/\-/g,'/')); 
var ar = sdate.split(/[-/:]/); 
if(ar[0] != t.getyear() || ar[1] != t.getmonth()+1 || ar[2] != t.getdate()) 
{ 
//alert('错误的日期格式!格式为:yyyy-mm-dd或yyyy/mm/dd。注意闰年。'); 
return false; 
} 
} 
else 
{ 
//alert('错误的日期格式!格式为:yyyy-mm-dd或yyyy/mm/dd。注意闰年。'); 
return false; 
} 
return true; 
}
//+--------------------------------------------------- 
//| 日期时间检查 
//| 格式为:yyyy-mm-dd hh:mm:ss 
//+--------------------------------------------------- 
function checkdatetime(str) 
{ 
var reg = /^(\d+)-(\d{ 1,2 })-(\d{ 1,2 }) (\d{ 1,2 }):(\d{ 1,2 }):(\d{ 1,2 })$/; 
var r = str.match(reg); 
if(r==null)return false; 
r[2]=r[2]-1; 
var d= new date(r[1],r[2],r[3],r[4],r[5],r[6]); 
if(d.getfullyear()!=r[1])return false; 
if(d.getmonth()!=r[2])return false; 
if(d.getdate()!=r[3])return false; 
if(d.gethours()!=r[4])return false; 
if(d.getminutes()!=r[5])return false; 
if(d.getseconds()!=r[6])return false; 
return true; 
}
//+--------------------------------------------------- 
//| 把日期分割成数组 
//+--------------------------------------------------- 
date.prototype.toarray = function() 
{ 
var mydate = this; 
var myarray = array(); 
myarray[0] = mydate.getfullyear(); 
myarray[1] = mydate.getmonth(); 
myarray[2] = mydate.getdate(); 
myarray[3] = mydate.gethours(); 
myarray[4] = mydate.getminutes(); 
myarray[5] = mydate.getseconds(); 
return myarray; 
}
//+--------------------------------------------------- 
//| 取得日期数据信息 
//| 参数 interval 表示数据类型 
//| y 年 m月 d日 w星期 ww周 h时 n分 s秒 
//+--------------------------------------------------- 
date.prototype.datepart = function(interval) 
{ 
var mydate = this; 
var partstr=''; 
var week = ['日','一','二','三','四','五','六']; 
switch (interval) 
{ 
case 'y' :partstr = mydate.getfullyear();break; 
case 'm' :partstr = mydate.getmonth()+1;break; 
case 'd' :partstr = mydate.getdate();break; 
case 'w' :partstr = week[mydate.getday()];break; 
case 'ww' :partstr = mydate.weeknumofyear();break; 
case 'h' :partstr = mydate.gethours();break; 
case 'n' :partstr = mydate.getminutes();break; 
case 's' :partstr = mydate.getseconds();break; 
} 
return partstr; 
}
//+--------------------------------------------------- 
//| 取得当前日期所在月的最大天数 
//+--------------------------------------------------- 
date.prototype.maxdayofdate = function() 
{ 
var mydate = this; 
var ary = mydate.toarray(); 
var date1 = (new date(ary[0],ary[1]+1,1)); 
var date2 = date1.dateadd(1,'m',1); 
var result = datediff(date1.format('yyyy-mm-dd'),date2.format('yyyy-mm-dd')); 
return result; 
}
//+--------------------------------------------------- 
//| 字符串转成日期类型 
//| 格式 mm/dd/yyyy mm-dd-yyyy yyyy/mm/dd yyyy-mm-dd 
//+--------------------------------------------------- 
function stringtodate(datestr) 
{ 
var converted = date.parse(datestr); 
var mydate = new date(converted); 
if (isnan(mydate)) 
{ 
//var delimcahar = datestr.indexof('/')!=-1?'/':'-'; 
var arys= datestr.split('-'); 
mydate = new date(arys[0],--arys[1],arys[2]); 
} 
return mydate; 
}
页面验证代码 
复制代码 代码如下:
   
 
   