来源:远方网络 | 2005-7-16 10:27:20 | (有2151人读过)
<% '日期函数包DataPackage %> <script language="javascript"> function IsDateString(Str) <!-- { // 校验是否YYYY-MM-DD格式的日期型数据,返回值为True成功,否则返回False // 如果传递的是空字符串则返回False // 定义分隔符 var sSplit="-"
var iYearPos=Str.indexOf(sSplit); if (iYearPos==-1) return false;
var iMonthPos=Str.indexOf(sSplit,iYearPos+1); if (iMonthPos==-1) return false;
// 分离出年份 sYear=Str.substr(0,iYearPos); // 分离出月份 sMonth=Str.substr(iYearPos+1,iMonthPos-iYearPos-1); //月份长度为二 if (sMonth.length!=2) return false; if (sMonth.substr(0,1)=="0") sMonth=sMonth.substr(1); // 分离出日期 sDay=Str.substr(iMonthPos+1); //日长度为二 if (sDay.length!=2) return false; if (sDay.substr(0,1)=="0") sDay=sDay.substr(1);
// 年份是否数字? if (isNaN(sYear)) return false; var iYear=parseInt(sYear); // 年份是否整数? if (sYear!=iYear) return false; // 年份是否在1000-9999之间? if (iYear<1000 || iYear>9999) return false;
// 月份是否数字? if (isNaN(sMonth)) return false; var iMonth=parseInt(sMonth); // 月份是否整数? if (sMonth!=iMonth) return false; // 月份是否在1-12之间? if (iMonth<1 || iMonth>12) return false;
// 日期是否数字? if (isNaN(sDay)) return false; var iDay=parseInt(sDay); // 日期是否整数? if (sDay!=iDay) return false; // 日期是否在1-31之间? if (iDay<1 || iDay>31) return false;
if (iDay<29) return true;
// 日期数据是否合法的? switch (iMonth) { case 1: if (iDay>31) return false; break; case 2: if (IsLeapYear(iYear)) { if (iDay>29) return false; } else { if (iDay>28) return false; } break; case 3: if (iDay>31) return false; break; case 4: if (iDay>30) return false; break; case 5: if (iDay>31) return false; break; case 6: if (iDay>30) return false; break; case 7: if (iDay>31) return false; break; case 8: if (iDay>31) return false; break; case 9: if (iDay>30) return false; break; case 10: if (iDay>31) return false; break; case 11: if (iDay>30) return false; break; case 12: if (iDay>31) return false; }
return true;
}
function IsLeapYear(Y) { // 年份是否为闰年
if (Y % 4 !=0) return false; if (Y % 400 == 0) return true; if (Y % 100 == 0) return false; }
--> </script>
<% '********************** '目的:将日期转换成标准日期字符串 '输入:日期 '输出:日期字符串,如:2002-12-22 '********************** Function getdatestr(ddate) dim strtmp getdatestr = DatePart("yyyy",ddate) strtmp = trim(DatePart("m",ddate)) if len(strtmp)=1 then strtmp="0" & strtmp getdatestr = getdatestr & "-" & strtmp strtmp = trim(DatePart("d",ddate)) if len(strtmp)=1 then strtmp="0" & strtmp getdatestr = getdatestr & "-" & strtmp End Function '**********************
'********************** '目的:将日期时间转换成标准日期时间字符串 '输入:日期时间 '输出:日期时间字符串,如:2002-12-22 '********************** Function gettimestr(ddate) dim strtmp gettimestr = DatePart("yyyy",ddate) strtmp = trim(DatePart("m",ddate)) if len(strtmp)=1 then strtmp="0" & strtmp gettimestr = gettimestr & "-" & strtmp strtmp = trim(DatePart("d",ddate)) if len(strtmp)=1 then strtmp="0" & strtmp gettimestr = gettimestr & "-" & strtmp gettimestr = gettimestr & " " & trim(DatePart("h",ddate)) gettimestr = gettimestr & ":" & trim(DatePart("m",ddate)) End Function '**********************
'********************** '目的:计算一月的总天数 '输入:年,月 '输出:天数 '********************** function getmonthdays(myyear,mymonth) dim thismonthfirday,nextmonthfirday '取得当前年月的1日日期 thismonthfirday=myyear & "-" & mymonth & "-1" '取得下个月1日的日期 nextmonthfirday=dateadd("m",1,thismonthfirday) '取得当前月的天数 getmonthdays=DateDiff("d",thismonthfirday,nextmonthfirday) end function '**********************
'********************** '目的:返回格式化日期 '输入:任何类型参数 '输出:格式化后的日期 '********************** Function FormatDateEx(D)
dim varTemp
if IsDate(D) then varTemp="'" & D & "'" else varTemp="NULL" end if
FormatDateEx=varTemp
End Function '**********************
'DatePackage End %>
|