【ASP】常用日期格式化函数

核心代码

?
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" ))
%>


?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值