ASP常用日期格式化函数 FormatDate()实用指南
平时做技术实践时,很多问题不是概念不会,而是细节没串起来。拿“ASP常用日期格式化函数 FormatDate()”来说,它看着像小点,放到项目里常会牵出环境、配置、兼容性和维护成本。下面按实际采用顺序,把思路、关键写法和容易踩坑的地方讲清楚,便于大家直接对照操作。
核心代码
<%
'功能:多功能日期格式化函数
'来源:http://jorkin.reallydo.com/article.asp?id=477
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
%>
用法如下所示:
<%
'将日期格式化为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"))
%>
更多的能够查看下面的相关文章
您可能感兴趣的文章:
- JS 日期验证正则附asp日期格式化函数
- Asp 日期格式化问题
- asp 将日期格式化为需的格式
- asp的一个日期格式化函数
相关资讯
-
10.16
使用C#代码合并Word文档的完整示例实用指南
-
10.16
C#正则表达式详细图文教程实用指南
-
10.16
正则表达式密码格式验证做法大全使用教程与实战指南实用指南
-
10.16
grep文本搜索与正则表达式完整代码示例实用指南
-
10.16
C#代码实现方式在PDF页面绘制各种形状与线条实用指南
-
10.16
CLAUDE.md文件怎么写?Claude Code中CLAUDE.md文件编写规则与优化教学实用指南
游戏推荐
推荐专题
热门阅读
-
-
- asp判断某个文件是否存在的函数实用指南
- 09.01
-
- 蛋仔派对竞速赛进阶攻略
- 09.01
-
- 超时空街球对决好不好玩
- 09.01
-
-
- 燕云十六声不羡仙万事知如何做
- 09.01
推荐下载
-
-
下载
- |
-
-
下载
- 《行尸走肉第一章》免安装中文汉化硬盘版下载
- 单机|436 MB
- 一款以动作冒险为主题的游戏
-
-
下载
- 《街头霸王X铁拳》免安装中文汉化硬盘版下载
- 单机|111MB
- 一款非常好玩的格斗游戏
-
-
下载
- |
-
-
下载
- 《暗黑破坏神3》免安装繁体中文正式版下载
- 单机|7630 MB
- 一款以角色扮演为主题的游戏
-
-
下载
- 《马克思佩恩3》免安装硬盘版下载
- 单机|27033 MB
- 一款以第三人称射击为主题的游戏