在網路上搜尋到一位大大把煩人的日期時間格式轉換寫成Function- DanDate,只要用這個函式,就沒有轉換不了的日期時間格式了
例如要把現在的時間轉成 yyyy/mm/dd HH:MM:SS,只要引用下列就可以囉
[codesyntax lang=”asp”]
DanDate(Now(), “%Y/%m/%d %H:%M:%S”)
[/codesyntax]
DanDate Function 原始碼
[codesyntax lang=”asp”]
<%
Function DanDate(strDate, strFormat)
'%m Month as a decimal no. 02
'%b Abbreviated month name Feb
'%B Full month name February
'%d Day of the month 23
'%j Day of the year 54
'%y Year without century 98
'%Y Year with century 1998
'%w Weekday as integer 5 (0 is Sunday)
'%a Abbreviated day name Fri
'%A Weekday Name Friday
'%I Hour in 12 hour format 12
'%H Hour in 24 hour format 24
'%M Minute as an integer 01
'%S Second as an integer 55
'%P AM/PM Indicator PM
'%% Actual Percent sign %%
Dim intPosItem
Dim intHourPart
Dim strHourPart
Dim strMinutePart
Dim strSecondPart
Dim strAMPM
If not IsDate(strDate) Then
DanDate = strDate
Exit Function
End If
intPosItem = Instr(strFormat, "%m")
Do While intPosItem > 0
strFormat = Left(strFormat, intPosItem-1) & _
DatePart("m",strDate) & _
Right(strFormat, Len(strFormat) - (intPosItem + 1))
intPosItem = Instr(strFormat, "%m")
Loop
intPosItem = Instr(strFormat, "%b")
Do While intPosItem > 0
strFormat = Left(strFormat, intPosItem-1) & _
MonthName(DatePart("m",strDate),True) & _
Right(strFormat, Len(strFormat) - (intPosItem + 1))
intPosItem = Instr(strFormat, "%b")
Loop
intPosItem = Instr(strFormat, "%B")
Do While intPosItem > 0
strFormat = Left(strFormat, intPosItem-1) & _
MonthName(DatePart("m",strDate),False) & _
Right(strFormat, Len(strFormat) - (intPosItem + 1))
intPosItem = Instr(strFormat, "%B")
Loop
intPosItem = Instr(strFormat, "%d")
Do While intPosItem > 0
strFormat = Left(strFormat, intPosItem-1) & _
DatePart("d",strDate) & _
Right(strFormat, Len(strFormat) - (intPosItem + 1))
intPosItem = Instr(strFormat, "%d")
Loop
intPosItem = Instr(strFormat, "%j")
Do While intPosItem > 0
strFormat = Left(strFormat, intPosItem-1) & _
DatePart("y",strDate) & _
Right(strFormat, Len(strFormat) - (intPosItem + 1))
intPosItem = Instr(strFormat, "%j")
Loop
intPosItem = Instr(strFormat, "%y")
Do While intPosItem > 0
strFormat = Left(strFormat, intPosItem-1) & _
Right(DatePart("yyyy",strDate),2) & _
Right(strFormat, Len(strFormat) - (intPosItem + 1))
intPosItem = Instr(strFormat, "%y")
Loop
intPosItem = Instr(strFormat, "%Y")
Do While intPosItem > 0
strFormat = Left(strFormat, intPosItem-1) & _
DatePart("yyyy",strDate) & _
Right(strFormat, Len(strFormat) - (intPosItem + 1))
intPosItem = Instr(strFormat, "%Y")
Loop
intPosItem = Instr(strFormat, "%w")
Do While intPosItem > 0
strFormat = Left(strFormat, intPosItem-1) & _
DatePart("w",strDate,1) & _
Right(strFormat, Len(strFormat) - (intPosItem + 1))
intPosItem = Instr(strFormat, "%w")
Loop
intPosItem = Instr(strFormat, "%a")
Do While intPosItem > 0
strFormat = Left(strFormat, intPosItem-1) & _
WeekDayName(DatePart("w",strDate,1),True) & _
Right(strFormat, Len(strFormat) - (intPosItem + 1))
intPosItem = Instr(strFormat, "%a")
Loop
intPosItem = Instr(strFormat, "%A")
Do While intPosItem > 0
strFormat = Left(strFormat, intPosItem-1) & _
WeekDayName(DatePart("w",strDate,1),False) & _
Right(strFormat, Len(strFormat) - (intPosItem + 1))
intPosItem = Instr(strFormat, "%A")
Loop
intPosItem = Instr(strFormat, "%I")
Do While intPosItem > 0
intHourPart = DatePart("h",strDate) mod 12
if intHourPart = 0 then intHourPart = 12
strFormat = Left(strFormat, intPosItem-1) & _
intHourPart & _
Right(strFormat, Len(strFormat) - (intPosItem + 1))
intPosItem = Instr(strFormat, "%I")
Loop
intPosItem = Instr(strFormat, "%H")
Do While intPosItem > 0
strHourPart = DatePart("h",strDate)
if strHourPart < 10 Then strHourPart = "0" & strHourPart
strFormat = Left(strFormat, intPosItem-1) & _
strHourPart & _
Right(strFormat, Len(strFormat) - (intPosItem + 1))
intPosItem = Instr(strFormat, "%H")
Loop
intPosItem = Instr(strFormat, "%M")
Do While intPosItem > 0
strMinutePart = DatePart("n",strDate)
if strMinutePart < 10 then strMinutePart = "0" & strMinutePart
strFormat = Left(strFormat, intPosItem-1) & _
strMinutePart & _
Right(strFormat, Len(strFormat) - (intPosItem + 1))
intPosItem = Instr(strFormat, "%M")
Loop
intPosItem = Instr(strFormat, "%S")
Do While intPosItem > 0
strSecondPart = DatePart("s",strDate)
if strSecondPart < 10 then strSecondPart = "0" & strSecondPart
strFormat = Left(strFormat, intPosItem-1) & _
strSecondPart & _
Right(strFormat, Len(strFormat) - (intPosItem + 1))
intPosItem = Instr(strFormat, "%S")
Loop
intPosItem = Instr(strFormat, "%P")
Do While intPosItem > 0
if DatePart("h",strDate) >= 12 then
strAMPM = "PM"
Else
strAMPM = "AM"
End If
strFormat = Left(strFormat, intPosItem-1) & _
strAMPM & _
Right(strFormat, Len(strFormat) - (intPosItem + 1))
intPosItem = Instr(strFormat, "%P")
Loop
intPosItem = Instr(strFormat, "%%")
Do While intPosItem > 0
strFormat = Left(strFormat, intPosItem-1) & "%" & _
Right(strFormat, Len(strFormat) - (intPosItem + 1))
intPosItem = Instr(strFormat, "%%")
Loop
DanDate = strFormat
End Function
%>
[/codesyntax]

