核心代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
<% '功能:多功能日期格式化函数 Function FormatDate(sDateTime, sReallyDo)
Dim sJorkin
sJorkin = GetLocale()
If Not IsDate(sDateTime) Then sDateTime = Now()
sDateTime = CDate (sDateTime)
Select Case UCase(sReallyDo & "" )
Case "0" , "1" , "2" , "3" , "4"
FormatDate = FormatDateTime(sDateTime, sReallyDo)
Case "00"
FormatDate = FormatDate(sDateTime, "YYYY-MM-DD hh:mm:ss" )
Case "01"
FormatDate = FormatDate(sDateTime, "YYYY年MM月DD日" )
Case "02"
FormatDate = FormatDate(sDateTime, "YYYY-MM-DD" )
Case "03"
FormatDate = FormatDate(sDateTime, "hh:mm:ss" )
Case "04"
FormatDate = FormatDate(sDateTime, "hh:mm" )
Case "ISO8601" , "GOOGLE" , "SITEMAP" '//ISO8601格式, 一般用于GoogleSiteMap, "+08:00" 为时区.
FormatDate = FormatDate(sDateTime, "YYYY-MM-DDThh:mm:ss.000+08:00" )
Case "RFC822" , "RSS" , "FEED" '//RFC822格式, 一般用于RSS, "+0800" 为时区.
SetLocale( "en-gb" )
FormatDate = FormatDate(sDateTime, "ew, DD eMM YYYY hh:mm:ss +0800" )
SetLocale(sJorkin)
Case "RND" , "RAND" , "RANDOMIZE" '//随机字符串
Randomize
sJorkin = Rnd()
FormatDate = FormatDate(sDateTime, "YYYYMMDDhhmmss" ) & _
Fix((9 * 10^6 -1) * sJorkin) + 10^6
Case Else
FormatDate = sReallyDo
FormatDate = Replace(FormatDate, "YYYY" , Year(sDateTime))
FormatDate = Replace(FormatDate, "DD" , Right( "0" & Day(sDateTime), 2))
FormatDate = Replace(FormatDate, "hh" , Right( "0" & Hour(sDateTime), 2))
FormatDate = Replace(FormatDate, "mm" , Right( "0" & Minute(sDateTime), 2))
FormatDate = Replace(FormatDate, "ss" , Right( "0" & Second(sDateTime), 2))
FormatDate = Replace(FormatDate, "YY" , Right(Year(sDateTime), 2))
FormatDate = Replace(FormatDate, "D" , Day(sDateTime))
FormatDate = Replace(FormatDate, "h" , Hour(sDateTime))
FormatDate = Replace(FormatDate, "m" , Minute(sDateTime))
FormatDate = Replace(FormatDate, "s" , Second(sDateTime))
If InStr(1, FormatDate, "EW" , 1) > 0 Then
SetLocale( "en-gb" )
FormatDate = Replace(FormatDate, "EW" , UCase(WeekdayName(Weekday(sDateTime), False )))
FormatDate = Replace(FormatDate, "eW" , WeekdayName(Weekday(sDateTime), False ))
FormatDate = Replace(FormatDate, "Ew" , UCase(WeekdayName(Weekday(sDateTime), True )))
FormatDate = Replace(FormatDate, "ew" , WeekdayName(Weekday(sDateTime), True ))
SetLocale(sJorkin)
Else
FormatDate = Replace(FormatDate, "W" , WeekdayName(Weekday(sDateTime), False ))
FormatDate = Replace(FormatDate, "w" , WeekdayName(Weekday(sDateTime), True ))
End If
If InStr(1, FormatDate, "EMM" , 1) > 0 Then
SetLocale( "en-gb" )
FormatDate = Replace(FormatDate, "EMM" , MonthName(Month(sDateTime), False ))
FormatDate = Replace(FormatDate, "eMM" , MonthName(Month(sDateTime), True ))
SetLocale(sJorkin)
Else
FormatDate = Replace(FormatDate, "MM" , Right( "0" & Month(sDateTime), 2))
FormatDate = Replace(FormatDate, "M" , Month(sDateTime))
End If
End Select
End Function
%> |
用法如下:
1
2
3
4
5
6
7
8
9
10
|
<% '将日期格式化为ISO8601格式 Response.Write(FormatDate( "2008-03-06 08:03:06" , "SITEMAP" ))
'将日期格式化为RFC822格式 Response.Write(FormatDate( "2008-03-06 08:03:06" , "RSS" ))
'将日期格式化为(英星期, 英月/日/年) Response.Write(FormatDate(Now(), "eW, EMM/DD/YYYY" ))
'将生成一个以年月日时分秒随机数的字符串 Response.Write(FormatDate(Now(), "RND" ))
%>
|