核心代码
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"
))
%>
|