📄 time.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 + -