📄 functions_date_time_format.asp
字号:
<%
'****************************************************************************************
'** Copyright Notice
'**
'** Web Wiz Forums(TM)
'** http://www.webwizforums.com
'**
'** Copyright (C)2001-2008 Web Wiz(TM). All Rights Reserved.
'**
'** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS UNDER LICENSE FROM 'WEB WIZ'.
'**
'** IF YOU DO NOT AGREE TO THE LICENSE AGREEMENT THEN 'WEB WIZ' IS UNWILLING TO LICENSE
'** THE SOFTWARE TO YOU, AND YOU SHOULD DESTROY ALL COPIES YOU HOLD OF 'WEB WIZ' SOFTWARE
'** AND DERIVATIVE WORKS IMMEDIATELY.
'**
'** If you have not received a copy of the license with this work then a copy of the latest
'** license contract can be found at:-
'**
'** http://www.webwizguide.com/license
'**
'** For more information about this software and for licensing information please contact
'** 'Web Wiz' at the address and website below:-
'**
'** Web Wiz, Unit 10E, Dawkins Road Industrial Estate, Poole, Dorset, BH15 4JD, England
'** http://www.webwizguide.com
'**
'** Removal or modification of this copyright notice will violate the license contract.
'**
'****************************************************************************************
'*************************** SOFTWARE AND CODE MODIFICATIONS ****************************
'**
'** MODIFICATION OF THE FREE EDITIONS OF THIS SOFTWARE IS A VIOLATION OF THE LICENSE
'** AGREEMENT AND IS STRICTLY PROHIBITED
'**
'** If you wish to modify any part of this software a license must be purchased
'**
'****************************************************************************************
'Dimension global variables
Dim rsDateTimeFormat 'Holds the date a time data
Dim saryDateTimeData 'Holds the info for converting the date and time
Dim intLoopCounter 'loop counter
'******************************************
'*** Initialise array ***
'******************************************
'The date and time formatting data is feed into an application array as this data won't change
'between users and pages so cuts done on un-necessary calls to the database
'Initialise the array from the application veriable
If isArray(Application(strAppPrefix & "saryAppDateTimeFormatData")) AND blnUseApplicationVariables Then
saryDateTimeData = Application(strAppPrefix & "saryAppDateTimeFormatData")
'Else the application level array holding the date and time data is not created so create it
Else
'Craete a recordset to get the date and time format data
Set rsDateTimeFormat = Server.CreateObject("ADODB.Recordset")
'Initalise the strSQL variable with an SQL statement to query the database
strSQL = "SELECT " & strDbTable & "DateTimeFormat.ID, " & strDbTable & "DateTimeFormat.Date_format, " & strDbTable & "DateTimeFormat.Year_format, " & strDbTable & "DateTimeFormat.Seporator, " & strDbTable & "DateTimeFormat.Month1, " & strDbTable & "DateTimeFormat.Month2, " & strDbTable & "DateTimeFormat.Month3, " & strDbTable & "DateTimeFormat.Month4, " & strDbTable & "DateTimeFormat.Month5, " & strDbTable & "DateTimeFormat.Month6, " & strDbTable & "DateTimeFormat.Month7, " & strDbTable & "DateTimeFormat.Month8, " & strDbTable & "DateTimeFormat.Month9, " & strDbTable & "DateTimeFormat.Month10, " & strDbTable & "DateTimeFormat.Month11, " & strDbTable & "DateTimeFormat.Month12, " & strDbTable & "DateTimeFormat.Time_format, " & strDbTable & "DateTimeFormat.am, " & strDbTable & "DateTimeFormat.pm, " & strDbTable & "DateTimeFormat.Time_offset, " & strDbTable & "DateTimeFormat.Time_offset_hours " & _
"FROM " & strDbTable & "DateTimeFormat" & strDBNoLock & " " & _
"WHERE " & strDbTable & "DateTimeFormat.ID = 1;"
'Query the database
rsDateTimeFormat.Open strSQL, adoCon
'If there are records returned then enter the data returned into an array
If NOT rsDateTimeFormat.EOF Then
'Place the date time data into an array
saryDateTimeData = rsDateTimeFormat.GetRows()
End If
'Relese server objects
rsDateTimeFormat.Close
Set rsDateTimeFormat = Nothing
'Update the application level variable holding the the time and date formatting (better performance)
If blnUseApplicationVariables Then
'Lock the application so that no other user can try and update the application level variable at the same time
Application.Lock
'Update the application level variable
Application(strAppPrefix & "saryAppDateTimeFormatData") = saryDateTimeData
'Unlock the application
Application.UnLock
End If
End If
'******************************************
'*** Date Format *****
'******************************************
'Function to format date
Private Function DateFormat(ByVal dtmDate)
Dim strNewDate 'Holds the new date format
Dim intDay 'Holds the integer number for the day
Dim intMonth 'Holds a integer number from 1 to 12 for the month
Dim strMonth 'Holds the month in it's final format which may be a number or a string so it is set to a sring value
Dim intYear 'Holds the year
Dim dtmNow 'Holds the present date
Dim dtmTempDate 'Temprary storage area for date
'If the array is empty set the date as server default
If isNull(saryDateTimeData) Then
'Set the date as orginal
DateFormat = dtmDate
'If there is a data in the array then format the date
Else
'Get the date now from the server
dtmNow = Now()
'Place the global forum time off-set onto the recorded database time
If saryDateTimeData(19,0) = "+" Then
dtmTempDate = DateAdd("h", + saryDateTimeData(20,0), dtmDate)
dtmNow = DateAdd("h", + saryDateTimeData(20,0), dtmNow)
ElseIf saryDateTimeData(19,0) = "-" Then
dtmTempDate = DateAdd("h", - saryDateTimeData(20,0), dtmDate)
dtmNow = DateAdd("h", - saryDateTimeData(20,0), dtmNow)
End If
'Place the users time off set onto the recorded database time
If strTimeOffSet = "+" Then
dtmTempDate = DateAdd("h", + intTimeOffSet, dtmTempDate)
dtmNow = DateAdd("h", + intTimeOffSet, dtmNow)
ElseIf strTimeOffSet = "-" Then
dtmTempDate = DateAdd("h", - intTimeOffSet, dtmTempDate)
dtmNow = DateAdd("h", - intTimeOffSet, dtmNow)
End If
'Seprate the date into differnet strings
intDay = CInt(Day(dtmTempDate))
intMonth = CInt(Month(dtmTempDate))
intYear = CInt(Year(dtmTempDate))
'If the date is today return today as the date
If intDay = CInt(Day(dtmNow)) AND intMonth = CInt(Month(dtmNow)) AND intYear = CInt(Year(dtmNow)) Then
DateFormat = strTxtToday
'Else if the date was yesterday return yeserday as the date
ElseIf intDay = (CInt(Day(dtmNow))-1) AND intMonth = CInt(Month(dtmNow)) AND intYear = CInt(Year(dtmNow)) Then
DateFormat = strTxtYesterday
'Else format the date
Else
'Place 0 infront of days under 10
If intDay < 10 then intDay = "0" & intDay
'If the year is two digits then sorten the year string
If saryDateTimeData(2,0) = "short" Then intYear = Right(intYear, 2)
'Format the month
strMonth = saryDateTimeData((intMonth + 3),0)
'If the user has entered their own date format get that
If NOT strDateFormat = "" Then saryDateTimeData(1,0) = strDateFormat
'Format the date
Select Case saryDateTimeData(1,0)
'Format dd/mm/yy
Case "dd/mm/yy"
DateFormat = intDay & saryDateTimeData(3,0) & strMonth & saryDateTimeData(3,0) & intYear
'Format mm/dd/yy
Case "mm/dd/yy"
DateFormat = strMonth & saryDateTimeData(3,0) & intDay & saryDateTimeData(3,0) & intYear
'Format yy/dd/mm
Case "yy/dd/mm"
DateFormat = intYear & saryDateTimeData(3,0) & intDay & saryDateTimeData(3,0) & strMonth
'Format yy/mm/dd
Case "yy/mm/dd"
DateFormat = intYear & saryDateTimeData(3,0) & strMonth & saryDateTimeData(3,0) & intDay
End Select
End If
End If
End Function
'******************************************
'*** Time Format *****
'******************************************
'Function to format time
Function TimeFormat(ByVal dtmTime)
Dim strNewDate 'Holds the new date format
Dim intHour 'Holds the integer number for the hours
Dim intMinute 'Holds a integer number for the mintes
Dim strPeriod 'Holds wether it is am or pm
Dim dtmTempTime 'Temporary storage area for the time
'If the array is empty then return tyhe original time
If isNull(saryDateTimeData) Then
'Set the date as server default
TimeFormat = dtmTime
'If there is a data in the array then format the date
Else
'Place the global forum time off-set onto the recorded database time
If saryDateTimeData(19,0) = "+" Then
dtmTempTime = DateAdd("h", + saryDateTimeData(20,0), dtmTime)
ElseIf saryDateTimeData(19,0) = "-" Then
dtmTempTime = DateAdd("h", - saryDateTimeData(20,0), dtmTime)
End If
'Place the users time off-set onto the recorded database time
If strTimeOffSet = "+" Then
dtmTempTime = DateAdd("h", + intTimeOffSet, dtmTempTime)
ElseIf strTimeOffSet = "-" Then
dtmTempTime = DateAdd("h", - intTimeOffSet, dtmTempTime)
End If
'Seprate the time into differnet strings
intHour = CInt(Hour(dtmTempTime))
intMinute = CInt(Minute(dtmTempTime))
'Place 0 infront of minutes under 10
If intMinute < 10 then intMinute = "0" & intMinute
'If the time is 12 hours then change the time to 12 hour clock
If CInt(saryDateTimeData(16,0)) = 12 Then
'Set the time period
If intHour >= 12 then
strPeriod = saryDateTimeData(18,0)
Else
strPeriod = saryDateTimeData(17,0)
End If
'Change the hour to 12 hour clock time
Select Case intHour
Case 00
intHour = 12
Case 01
intHour = 1
Case 02
intHour = 2
Case 03
intHour = 3
Case 04
intHour = 4
Case 05
intHour = 5
Case 06
intHour = 6
Case 07
intHour = 7
Case 08
intHour = 8
Case 09
intHour = 9
Case 13
intHour = 1
Case 14
intHour = 2
Case 15
intHour = 3
Case 16
intHour = 4
Case 17
intHour = 5
Case 18
intHour = 6
Case 19
intHour = 7
Case 20
intHour = 8
Case 21
intHour = 9
Case 22
intHour = 10
Case 23
intHour = 11
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -