/** @author:Pancras @version:1.01 @date:2008-03-02 @methods: DateUtil.getDate(year,month,day) 输入参数为年、月、日,返回一个JS的Date型对象 DateUtil.formateDate(pattern,date) 输入参数一个是格式化字符串,比如"yyyy-MM-dd",和JS日期对象,输出格式化后的日期字符串(基本上和Java的格式化类似) DateUtil.formateDateTime(pattern,date) 参数类型同上,但是该方法是在要格式化包含时间的时候使用,如"yyyy-MM-dd HH-mm-ss" DateUtil.isLeapYear(date) 输入一个JS日期型参数,判断该日期所在的年是不是闰年 **/ function DateUtil(){ alert("请不要new这个对象,所有方法都是可以通过DateUtil.方法名来调用"); } //------------------------------------------- //定义类方法getDate(year,month,day)创建对应的日期对象 function getDate(year,month,day) { var date = new Date(); if(year) { date.setYear(year); } if(month) { date.setMonth(month-1); } if(day) { date.setDate(day); } return date; } DateUtil.getDate=getDate; //定义日期时间格式化 DateUtil.yearPattern = [new RegExp("y{4}","g"),new RegExp("y{3}","g"),new RegExp("y{2}","g")]; DateUtil.monthPattern = [new RegExp("M{2}","g"),new RegExp("M{1}","g")]; DateUtil.datePattern = [new RegExp("d{2}","g"),new RegExp("d{1}","g")]; DateUtil.hourPattern=[new RegExp("H{2}","g"),new RegExp("H{1}","g"),new RegExp("h{2}","g"),new RegExp("h{1}","g")]; DateUtil.minutePattern=[new RegExp("m{2}","g"),new RegExp("m{1}","g")]; DateUtil.secondPattern=[new RegExp("s{2}","g"),new RegExp("s{1}","g")]; //格式化年 function formatYear(pattern,year) { var result = pattern.match(DateUtil.yearPattern[0]); if(result!=null){ pattern = pattern.replace(DateUtil.yearPattern[0],year); return pattern; }else { //不允许匹配成yyy result = pattern.match(DateUtil.yearPattern[1]); if(result!=null){ throw "Unknown pattern:"+pattern; }else { result = pattern.match(DateUtil.yearPattern[2]); if(result!=null) { pattern = pattern.replace(DateUtil.yearPattern[2],(""+year).substring(2,4)); return pattern; } } } } //格式化月 function formatMonth(pattern,month) { var result = pattern.match(DateUtil.monthPattern[0]); if(result!=null){ if(month<10) { month = "0"+month; } pattern = pattern.replace(DateUtil.monthPattern[0],month); return pattern; }else { result = pattern.match(DateUtil.monthPattern[1]); if(result!=null){ pattern = pattern.replace(DateUtil.monthPattern[1],month); return pattern; } else{ throw "Unknown pattern:"+pattern; } } } //格式化日期 function formatDay(pattern,day) { var result = pattern.match(DateUtil.datePattern[0]); if(result!=null){ if(day<10) { day = "0"+day; } pattern = pattern.replace(DateUtil.datePattern[0],day); return pattern; }else { result = pattern.match(DateUtil.datePattern[1]); if(result!=null){ pattern = pattern.replace(DateUtil.datePattern[1],day); return pattern; } else{ throw "Unknown pattern:"+pattern; } } } //格式化小时 function formatHour(pattern,hour) { var result = pattern.match(DateUtil.hourPattern[0]); if(result!=null){ if(hour<10) { hour = "0"+hour; } pattern = pattern.replace(DateUtil.hourPattern[0],hour); return pattern; }else { result = pattern.match(DateUtil.hourPattern[1]); if(result!=null){ pattern = pattern.replace(DateUtil.hourPattern[1],hour); return pattern; } else{ result = pattern.match(DateUtil.hourPattern[2]); if(result!=null){ if(hour<10) { hour = "0"+hour; } if(hour>12) { hour = hour-12; } pattern = pattern.replace(DateUtil.hourPattern[2],hour); return pattern; }else{ result = pattern.match(DateUtil.hourPattern[3]); if(result!=null){ if(hour>12) { hour = hour-12; } pattern = pattern.replace(DateUtil.hourPattern[3],hour); return pattern; }else{ throw "Unknown pattern:"+pattern; } } } } } //格式化分钟 function formatMinute(pattern,minute) { var result = pattern.match(DateUtil.minutePattern[0]); if(result!=null){ if(minute<10) { minute = "0"+minute; } pattern = pattern.replace(DateUtil.minutePattern[0],minute); return pattern; }else { result = pattern.match(DateUtil.minutePattern[1]); if(result!=null){ pattern = pattern.replace(DateUtil.minutePattern[1],minute); return pattern; } else{ throw "Unknown pattern:"+pattern; } } } //格式化秒 function formatSecond(pattern,second) { var result = pattern.match(DateUtil.secondPattern[0]); if(result!=null){ if(second<10) { second = "0"+second; } pattern = pattern.replace(DateUtil.secondPattern[0],second); return pattern; }else { result = pattern.match(DateUtil.secondPattern[1]); if(result!=null){ pattern = pattern.replace(DateUtil.secondPattern[1],second); return pattern; } else{ throw "Unknown pattern:"+pattern; } } } function formateLongDate(pattern,date) { return formateDate(pattern,new Date(date)) } function formateDate(pattern,date) { var oldpattern = pattern; try{ pattern = formatYear(pattern,date.getFullYear()); pattern = formatMonth(pattern,date.getMonth()+1); pattern = formatDay(pattern,date.getDate()); return pattern; }catch(err){ if(err.match("Unknown pattern")){ alert("Unknown pattern:"+oldpattern); }else{ alert(err); } } } function formateLongDateTime(pattern,date) { return formateDateTime(pattern,new Date(date)); } function formateDateTime(pattern,date) { var oldpattern = pattern; try{ pattern = DateUtil.formateDate(pattern,date); pattern = formatHour(pattern,date.getHours()); pattern = formatMinute(pattern,date.getMinutes()); pattern = formatSecond(pattern,date.getSeconds()); return pattern; }catch(err){ if(err.match("Unknown pattern")){ alert("Unknown pattern:"+oldpattern); }else{ alert(err); } } } DateUtil.formateDate = formateDate; DateUtil.formateDateTime = formateDateTime; //------------------------------------------- //是不是闰年 function isLeapYear(date) { var year = date.getFullYear(); if(year%100==0) { if(year%400==0) { return true; } } if(year%100!=0) { if(year%4==0) { return true; } } return false; } DateUtil.isLeapYear = isLeapYear;