⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 time.asp

📁 WAPmo手机网站管理平台是一款创建与管理维护WAP网站的的软件产品
💻 ASP
字号:
<%
'--------------------------------------------------------------------
' time.asp - date and time functions
'
' Copyright (c) 2006 - 2008 MOEx Group.
'
'
' last update: 2008/06/16
'
'--------------------------------------------------------------------

'--------------------------------------------------------------------
' GetTime           - 获取从1970-01-01 [与格林威治时间相差的小时数]:00:00开始至指定时间的秒数
'                   - 返回类型:Long
'                   - arguments[0] = 指定时间(type: Date)
'--------------------------------------------------------------------
Public Function GetTime(ByVal dtmValue)
    dtmValue = CDate(dtmValue)
    GetTime = DateDiff("s", "1970-01-01 00:00:00", dtmValue) - HToSEC(GMT_TIMEZONE)
End Function

'--------------------------------------------------------------------
' GetDate           - 获取从1970-01-01 [与格林威治时间相差的小时数]:00:00开始至指定秒数的时间
'                   - 返回类型:Long
'                   - arguments[0] = 指定时间(type: Date)
'--------------------------------------------------------------------
Public Function GetDate(ByVal lngValue)
    lngValue = atol(lngValue)
    GetDate = DateAdd("s", lngValue + HToSEC(GMT_TIMEZONE), "1970-01-01 00:00:00")
End Function

'--------------------------------------------------------------------
' GetMillTime       - 获取从1970-01-01 [与格林威治时间相差的小时数]:00:00开始至当前时间的的毫秒数
'                   - 返回类型:Double
'--------------------------------------------------------------------
Public Function GetMillTime()
    Dim n, t, m, r
    n = Now()
    t = Timer()
    r = GetTime(n)'秒
    m = CInt((CDbl(t) - DateDiff("s", Date(), n)) * 1000)'毫秒
    If m < 10 Then
        r = r & "00" & m
    ElseIf m < 100 Then
        r = r & "0" & m
    Else
        r = r & m
    End If
    GetMillTime = CDBl(r)
End Function

'--------------------------------------------------------------------
' FillZero          - 小于10的数字左补0,否则返回原数
'                   - 返回类型:String
'                   - arguments[0] = 数字(type: Long)
'--------------------------------------------------------------------
Private Function FillZero(ByVal iValue)
    If iValue < 10 Then
        FillZero = "0" & iValue
    Else
        FillZero = iValue
    End If
End Function

'--------------------------------------------------------------------
' FormatDate        - 格式化指定时间
'                   - 返回类型:String
'                   - arguments[0] = 指定时间(type: Date)
'                   - arguments[1] = 格式字符串,格式定义与php的date函数一致(type: String)
'--------------------------------------------------------------------
Public Function FormatDate(ByVal dtmValue, ByVal strFmt)
    Dim pWeek, pWeekFull, pMonth, pMonthFull
    Dim ret, tmp
    Dim i, l
    Dim y, m, d, h, n, s, w
    dtmValue = CDate(dtmValue)
    pWeek = Array("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat")
    pWeekFull = Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")
    pMonth = Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec")
    pMonthFull = Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")
    y = Year(dtmValue)
    m = Month(dtmValue)
    d = Day(dtmValue)
    h = Hour(dtmValue)
    n = Minute(dtmValue)
    s = Second(dtmValue)
    w = Weekday(dtmValue)
    l = Len(strFmt)
    ReDim ret(l - 1)
    For i = 1 To l
        tmp = Mid(strFmt, i, 1)
        Select Case tmp
        Case "a"
            'a 小写的上午和下午值 am 或 pm
            ret(i - 1) = IIf(h < 12, "am", "pm")
        Case "A"
            'A 大写的上午和下午值 AM 或 PM
            ret(i - 1) = IIf(h < 12, "AM", "PM")
        Case "B"
            'B Swatch Internet 标准时 000 到 999
        Case "d"
            'd 月份中的第几天,有前导零的 2 位数字 01 到 31
            ret(i - 1) = FillZero(d)
        Case "D"
            'D 星期中的第几天,文本表示,3 个字母 Mon 到 Sun
            ret(i - 1) = pWeek(w - 1)
        Case "F"
            'F 月份,完整的文本格式,例如 January 或者 March January 到 December
            ret(i - 1) = pMonthFull(m - 1)
        Case "g"
            'g 小时,12 小时格式,没有前导零 1 到 12
            ret(i - 1) = (h Mod 12)
        Case "G"
            'G 小时,24 小时格式,没有前导零 0 到 23
            ret(i - 1) = h
        Case "h"
            'h 小时,12 小时格式,有前导零 01 到 12
            ret(i - 1) = FillZero(h Mod 12)
        Case "H"
            'H 小时,24 小时格式,有前导零 00 到 23
            ret(i - 1) = FillZero(h)
        Case "i"
            'i 有前导零的分钟数 00 到 59>
            ret(i - 1) = FillZero(n)
        Case "I"
            'ret(i - 1) = tt->tm_isdst'I 是否为夏令时 如果是夏令时为 1,否则为 0
        Case "j"
            'j 月份中的第几天,没有前导零 1 到 31
            ret(i - 1) = d
        Case "l"
            'l(“L”的小写字母) 星期几,完整的文本格式 Sunday 到 Saturday
            ret(i - 1) = pWeekFull(w - 1)
        Case "L"
            'L 是否为闰年 如果是闰年为 1,否则为 0
            ret(i - 1) = IIf((y Mod 4 = 0 And y Mod 100 <>0) Or y Mod 400 = 0, 1, 0)
        Case "m"
            'm 数字表示的月份,有前导零 01 到 12
            ret(i - 1) = FillZero(m)
        Case "M"
            'M 三个字母缩写表示的月份 Jan 到 Dec
            ret(i - 1) = pMonth(m - 1)
        Case "n"
            'n 数字表示的月份,没有前导零 1 到 12
            ret(i - 1) = m
        Case "O"
            'O 与格林威治时间相差的小时数 例如:+0200
            ret(i - 1) = "$1$200"
            If GMT_TIMEZONE < 0 Then
                ret(i - 1) = Replace(ret(i - 1), "$1", "-")
            Else
                ret(i - 1) = Replace(ret(i - 1), "$1", "+")
            End If
            ret(i - 1) = Replace(ret(i - 1), "$2", FillZero(Abs(GMT_TIMEZONE)))
        Case "r"
            'r RFC 822 格式的日期 例如:Thu, 21 Dec 2000 16:01:07 +0200
            ret(i - 1) = FormatDate(dtmValue, "D, d M Y H:i:s O")
        Case "s"
            's 秒数,有前导零 00 到 59>
            ret(i - 1) = FillZero(s)
        Case "S"
            'S 每月天数后面的英文后缀,2 个字符 st,nd,rd 或者 th。可以和 j 一起用。
        Case "t"
            't 给定月份所应有的天数 28 到 31
            If m = 1 Or m = 3 Or m = 5 Or m = 7 Or m = 8 Or m = 10 Or m = 12 Then
                ret(i - 1) = 31
            ElseIf m = 4 Or m = 6 Or m = 9 Or m = 11 Then
                ret(i - 1) = 30
            Else
                ret(i - 1) = IIf((y Mod 4 = 0 And y Mod 100 <>0) Or y Mod 400 = 0, 29, 28)
            End If
        Case "T"
            'T 时区
        Case "U"
            'U 从 Unix 纪元(January 1 1970 00:00:00 GMT)开始至今的秒数 参见 time()
        Case "w"
            'w 星期中的第几天,数字表示 0(表示星期天)到 6(表示星期六)
            ret(i - 1) = w
        Case "W"
            'W ISO-8601 格式年份中的第几周,每周从星期一开始(PHP 4.1.0 新加的) 例如:42(当年的第 42 周)
        Case "Y"
            'Y 4 位数字完整表示的年份 例如:1999 或 2003
            ret(i - 1) = y
        Case "y"
            'y 2 位数字表示的年份 例如:99 或 03
            ret(i - 1) = Right(y, 2)
        Case "z"
            'z 年份中的第几天 0 到 366
            ret(i - 1) = DateDiff("d", y & "-01-01", dtmValue)
        Case "Z"
            'Z 时差偏移量的秒数。UTC 西边的时区偏移量总是负的,UTC 东边的时区偏移量总是正的。
        Case "\"
            '转义字符
            i = i + 1
            ret(i - 1) = Mid(strFmt, i, 1)
        Case Else
            ret(i - 1) = tmp
        End Select
    Next
    FormatDate = Join(ret, Empty)
End Function

'--------------------------------------------------------------------
' FormatGDate       - 格式化指定时间为格林威治时间
'                   - 返回类型:String
'                   - arguments[0] = 指定时间(type: Date)
'                   - arguments[1] = 格式后缀(type: Integer)
'                     = 0,加GMT后缀
'                     = 1,加UTC后缀
'--------------------------------------------------------------------
Public Function FormatGDate(ByVal dtmValue, ByVal intType)
    dtmValue = CDate(dtmValue)
    FormatGDate = FormatDate(DateAdd("h", 0 - GMT_TIMEZONE, dtmValue), IIf(intType = 0, "D, d M Y H:i:s \G\M\T", "D, d M Y H:i:s \U\T\C"))
End Function

Public Function FormatTime(ByVal lngTime, ByVal strFmt)
    FormatTime = FormatDate(GetDate(lngTime), strFmt)
End Function

Public Function FormatGTime(ByVal lngTime, ByVal intType)
    FormatGTime = FormatGDate(GetDate(lngTime), intType)
End Function

'--------------------------------------------------------------------
' GetWeekFirstDay   - 获取指定时间的周一对应的时间
'                   - 返回类型:Date
'                   - arguments[0] = 指定时间(type: Date)
'--------------------------------------------------------------------
Public Function GetWeekFirstDay(ByVal dtmValue)
    dtmValue = CDate(dtmValue)
    GetWeekFirstDay = DateAdd("d", 2 - Weekday(dtmValue), dtmValue)
End Function

'--------------------------------------------------------------------
' GetMonthFirstDay  - 获取指定时间的本月第一天对应的时间
'                   - 返回类型:Date
'                   - arguments[0] = 指定时间(type: Date)
'--------------------------------------------------------------------
Public Function GetMonthFirstDay(ByVal dtmValue)
    dtmValue = CDate(dtmValue)
    GetMonthFirstDay = DateAdd("d", 1 - Day(dtmValue), dtmValue)
End Function

'--------------------------------------------------------------------
' MToSEC            - 从分钟数获取秒数
'                   - 返回类型:Long
'                   - arguments[0] = 分钟数(type: Long)
'--------------------------------------------------------------------
Public Function MToSEC(ByVal lValue)
    MToSEC = lValue * 60
End Function

'--------------------------------------------------------------------
' HToSEC            - 从小时数获取秒数
'                   - 返回类型:Long
'                   - arguments[0] = 小时数(type: Long)
'--------------------------------------------------------------------
Public Function HToSEC(ByVal lValue)
    HToSEC = lValue * 60 * 60
End Function

'--------------------------------------------------------------------
' HToSEC            - 从天数获取秒数
'                   - 返回类型:Long
'                   - arguments[0] = 天数(type: Long)
'--------------------------------------------------------------------
Public Function DToSEC(ByVal lValue)
    DToSEC = lValue * 24 * 60 * 60
End Function

Private Function FormatTimeString(ByVal strFmt)
    Dim ret
    ret = strFmt
    ret = Replace(ret, "YYYY", "Y")
    ret = Replace(ret, "MM", "m")
    ret = Replace(ret, "DD", "d")
    ret = Replace(ret, "HH24", "H")
    ret = Replace(ret, "MI", "i")
    ret = Replace(ret, "SS", "s")
    ret = Replace(ret, "YY", "y")
    ret = Replace(ret, "M", "n")
    ret = Replace(ret, "D", "j")
    FormatTimeString = ret
End Function
%>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -