ASP常用日期格式化函数 FormatDate()(asp显示当前时间)不看后悔

随心笔谈2年前发布 admin
192 0 0

文章摘要

这篇文章介绍了一个多功能的日期格式化函数,名为`FormatDate`,用于根据不同的参数自定义日期输出格式。函数支持多种格式,包括常见的`YYYY-MM-DD`、`YYYY年MM月DD日`、`ISO8601`和`RFC822`格式,以及自定义格式(如年、月、日、时、分等)。此外,函数还支持时区设置、语言切换以及随机字符串生成等功能。该函数通过参数控制输出格式,可满足多种应用场景,如SEO优化、RSS订阅等,同时允许用户根据需求进一步自定义日期显示内容。


<%
‘功能:多功能日期格式化函数
‘来源: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
%>

© 版权声明

相关文章