T086学习网 | 站长学院 | 技术文档 | 成语 | 歇后语 | 帝国时代 | 代码收藏 | IP地址查询 | 生活百科 | 生日密码 | CSS压缩 | 用户评论 | 欣欣百宝箱

ASP函数-日期转换函数

【 本站原创作者:ITlearner整理 更新时间:2006-05-15 | 字体:
[导读]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...
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
  • 转载请注明来源:IT学习网 网址:http://www.t086.com/ 向您的朋友推荐此文章
  • 特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系我们,我们会尽快予以更正。
更多
留言建议ASP探针PHP探针站长Enjoy的Blog
© 2017 T086学习网 - T086.com(原itlearner.com)
RunTime:19.11ms QueryTime:7