ASP中的日期函數

來源:互聯網
上載者:User
函數|日期 <%
'日期函數包DataPackage
%>
<script language="javascript">
function IsDateString(Str)
<!--
{
// 校正是否YYYY-MM-DD格式的日期型資料,傳回值為True成功,否則返回False
// 如果傳遞的是Null 字元串則返回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
%>

相關文章

Cloud Intelligence Leading the Digital Future

Alibaba Cloud ACtivate Online Conference, Nov. 20th & 21st, 2019 (UTC+08)

Register Now >

Starter Package

SSD Cloud server and data transfer for only $2.50 a month

Get Started >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。