加入收藏 | 设为首页 | 会员中心 | 我要投稿 湘西站长网 (https://www.0743zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > Asp教程 > 正文

ASP函数-日期转换函数

发布时间:2022-01-09 01:39:07 所属栏目:Asp教程 来源:互联网
导读:Function FormatDate(byVal strDate,byVal strFormat) Accepts strDate as a valid date/time, strFormat as the output template. The function finds each item in the template and replaces it with the relevant information extracted from strDate. Yo
Function FormatDate(byVal strDate,byVal strFormat)
 
    ' Accepts strDate as a valid date/time,
    ' strFormat as the output template.
    ' The function finds each item in the
    ' template and replaces it with the
    ' relevant information extracted from strDate.
    ' You are free to use this code provided the following line remains
    ' www.adopenstatic.com/resources/code/formatdate.asp
 
    ' Template items
    ' %m Month as a decimal no. 2
    ' %M Month as a padded decimal no. 02
    ' %B Full month name February
    ' %b Abbreviated month name Feb    
    ' %d Day of the month eg 23
    ' %D Padded day of the month eg 09
    ' %O Ordinal of day of month (eg st or rd or nd)
    ' %j Day of the year 54
    ' %Y Year with century 1998
    ' %y Year without century 98
    ' %w Weekday as integer (0 is Sunday)
    ' %a Abbreviated day name Fri
    ' %A Weekday Name Friday
    ' %H Hour in 24 hour format 24
    ' %h Hour in 12 hour format 12
    ' %N Minute as an integer 01
    ' %n Minute as optional if minute <> 00
    ' %S Second as an integer 55
    ' %P AM/PM Indicator PM
 
    On Error Resume Next
 
    Dim intPosItem
    Dim int12HourPart
    Dim str24HourPart
    Dim strMinutePart
    Dim strSecondPart
    Dim strAMPM
 
    ' Insert Month Numbers
    strFormat = Replace(strFormat, "%m", DatePart("m", strDate), 1, -1, vbBinaryCompare)
 
    ' Insert Padded Month Numbers
    strFormat = Replace(strFormat, "%M", Right("0" & DatePart("m", strDate), 2), 1, -1, vbBinaryCompare)
 
    ' Insert non-Abbreviated Month Names
    strFormat = Replace(strFormat, "%B", MonthName(DatePart("m", strDate), False), 1, -1, vbBinaryCompare)
 
    ' Insert Abbreviated Month Names
    strFormat = Replace(strFormat, "%b", MonthName(DatePart("m", strDate), True), 1, -1, vbBinaryCompare)
 
    ' Insert Day Of Month
    strFormat = Replace(strFormat, "%d", DatePart("d",strDate), 1, -1, vbBinaryCompare)
 
    ' Insert Padded Day Of Month
    strFormat = Replace(strFormat, "%D", Right ("0" & DatePart("d",strDate), 2), 1, -1, vbBinaryCompare)
 
    ' Insert Day of Month Ordinal (eg st, th, or rd)
    strFormat = Replace(strFormat, "%O", GetDayOrdinal(Day(strDate)), 1, -1, vbBinaryCompare)
 
    ' Insert Day of Year
    strFormat = Replace(strFormat, "%j", DatePart("y",strDate), 1, -1, vbBinaryCompare)
 
    ' Insert Long Year (4 digit)
    strFormat = Replace(strFormat, "%Y", DatePart("yyyy",strDate), 1, -1, vbBinaryCompare)
 
    ' Insert Short Year (2 digit)
    strFormat = Replace(strFormat, "%y", Right(DatePart("yyyy",strDate),2), 1, -1, vbBinaryCompare)
 
    ' Insert Weekday as Integer (eg 0 = Sunday)
    strFormat = Replace(strFormat, "%w", DatePart("w",strDate,1), 1, -1, vbBinaryCompare)
 
    ' Insert Abbreviated Weekday Name (eg Sun)
    strFormat = Replace(strFormat, "%a", WeekDayName(DatePart("w",strDate,1), True), 1, -1, vbBinaryCompare)
 
    ' Insert non-Abbreviated Weekday Name
    strFormat = Replace(strFormat, "%A", WeekDayName(DatePart("w",strDate,1), False), 1, -1, vbBinaryCompare)
 
    ' Insert Hour in 24hr format
    str24HourPart = DatePart("h",strDate)
    If Len(str24HourPart) < 2 then str24HourPart = "0" & str24HourPart
    strFormat = Replace(strFormat, "%H", str24HourPart, 1, -1, vbBinaryCompare)
 
    ' Insert Hour in 12hr format
    int12HourPart = DatePart("h",strDate) Mod 12
    If int12HourPart = 0 then int12HourPart = 12
    strFormat = Replace(strFormat, "%h", int12HourPart, 1, -1, vbBinaryCompare)
 
    ' Insert Minutes
    strMinutePart = DatePart("n",strDate)
    If Len(strMinutePart) < 2 then strMinutePart = "0" & strMinutePart
    strFormat = Replace(strFormat, "%N", strMinutePart, 1, -1, vbBinaryCompare)
 
    ' Insert Optional Minutes
    If CInt(strMinutePart) = 0 then
        strFormat = Replace(strFormat, "%n", "", 1, -1, vbBinaryCompare)
    Else
        If CInt(strMinutePart) < 10 then strMinutePart = "0" & strMinutePart
        strMinutePart = ":" & strMinutePart
        strFormat = Replace(strFormat, "%n", strMinutePart, 1, -1, vbBinaryCompare)
    End If
 
    ' Insert Seconds
    strSecondPart = DatePart("s",strDate)
    If Len(strSecondPart) < 2 then strSecondPart = "0" & strSecondPart
    strFormat = Replace(strFormat, "%S", strSecondPart, 1, -1, vbBinaryCompare)
 
    ' Insert AM/PM indicator
    If DatePart("h",strDate) >= 12 then
        strAMPM = "PM"
    Else
        strAMPM = "AM"
    End If
 
    strFormat = Replace(strFormat, "%P", strAMPM, 1, -1, vbBinaryCompare)
 
    FormatDate = strFormat
 
End Function
 
 
Function GetDayOrdinal( _
    byVal intDay _
    )
 
    ' Accepts a day of the month
    ' as an integer and returns the
    ' appropriate suffix
    On Error Resume Next
 
    Dim strOrd
 
    Select Case intDay
    Case 1, 21, 31
        strOrd = "st"
    Case 2, 22
        strOrd = "nd"
    Case 3, 23
        strOrd = "rd"
    Case Else
        strOrd = "th"
    End Select
 
    GetDayOrdinal = strOrd
 
End Function

(编辑:湘西站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读