Content

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

文章摘要

这篇文章介绍了名为`FormatDate`的自定义日期格式化函数,作者为Jorkin,发表在Jorkin的网站上。该函数能够根据参数自定义日期格式,支持多种格式,包括标准日期格式(如`YYYY-MM-DD`)、时间格式(如`hh:mm:ss`)、ISO8601格式、RFC822格式,以及自定义字符串格式。函数还支持时区切换和日期、时间单位的替换,甚至可以添加月份名称、星期名称等自定义内容。此外,该函数能够随机生成字符串,并支持多种语言环境下的日期和时间格式。总体而言,`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 %>