%
Function fmtDateTime(byval d, byval pat)
Dim Tokens, token, delim, i, date_part, time_part, DateTokens, TimeTokens
' do not treat Null values as erroneous parameters, handle them gracefully
If IsNull(d) Then
fmtDateTime = ""
Exit Function
End If
If TypeName(d) <> "Date" Or Not IsDate(d) Then
fmtDateTime = "Invalid date parameter."
Exit Function
End If
' if there's a space in the string, then we're dealing with
' date *and* time formatting, otherwise it date OR time formatting
' we doing
If InStr(pat, " ") > 0 Then
Tokens = Split(pat, " ") ' should be 2 tokens --> (0)date (1)time
Else
Tokens = Split(pat, "") ' date OR time formatting
End If
bIsDate = False : bIsTime = False
For Each token In Tokens
If InStr(token, "-") > 0 Or InStr(token, "/") > 0 Then
' get the delimter used...
If InStr(token, "-") Then
delim = "-"
ElseIf InStr(token, "/") Then
delim = "/"
End If
' tokenize the date parts
DateTokens = Split(token, delim)
For i = 0 To UBound(DateTokens)
' replace the time tokens with properly formatted values
Select Case CStr(DateTokens(i))
Case "yy"
DateTokens(i) = Right(CStr(DatePart("yyyy", d)), 2)
Case "yyyy"
DateTokens(i) = CStr(DatePart("yyyy", d))
Case "m"
DateTokens(i) = CStr(DatePart("m", d))
Case "mm"
DateTokens(i) = ZeroPad(CStr(DatePart("m", d)),2)
Case "d"
DateTokens(i) = CStr(DatePart("d", d))
Case "dd"
DateTokens(i) = ZeroPad(CStr(DatePart("d", d)),2)
Case Else
fmtDateTime = "Invalid date format : " & token
Exit Function
End Select
Next
date_part = Join(DateTokens, delim)
End If
If InStr(token, ":") > 0 Then
' tokenize the time parts
TimeTokens = Split(token, ":")
For i = 0 To UBound(TimeTokens)
' replace the time tokens with properly formatted values
Select Case CStr(TimeTokens(i))
Case "h"
TimeTokens(i) = Right(CStr(DatePart("h", d)), 2)
Case "hh"
TimeTokens(i) = ZeroPad(CStr(DatePart("h", d)),2)
Case "m", "mm" ' always zero-pad minutes
TimeTokens(i) = ZeroPad(CStr(DatePart("n", d)),2)
Case "s", "ss" ' always zero-pad seconds
TimeTokens(i) = ZeroPad(CStr(DatePart("s", d)),2)
Case Else
fmtDateTime = "Invalid time format : " & token
Exit Function
End Select
Next
time_part = Join(TimeTokens, ":")
End If
Next
fmtDateTime = Trim(date_part & " " & time_part)
End Function
Function ZeroPad(byval str, byval iSize)
ZeroPad = String((iSize - Len(str)), "0") & Trim(str)
End Function
'''''''''''''''''''''''''''''''''''''''''''
'''''' Record page visit
'''''''''''''''''''''''''''''''''''''''''''
'' Open database connection
Set cn_hits = Server.CreateObject("ADODB.Connection")
cn_hits.Mode = adModeReadWrite
cn_hits.Open Application(application_name)
'' Open recordset
Set rs_hits = Server.CreateObject("ADODB.RecordSet")
rs_hits.Open "stats", cn_hits, adOpenKeyset, adLockOptimistic, adCmdTable
rs_hits.AddNew
rs_hits("path") = Request.ServerVariables("script_name")
rs_hits("ip") = Request.ServerVariables("remote_addr")
rs_hits("full_date") = NOW()
rs_hits("year") = mid(fmtDateTime(Now(), "yyyy-mm-dd"), 1, 4)
rs_hits("month") = mid(fmtDateTime(Now(), "yyyy-mm-dd"), 6, 2)
rs_hits("day") = mid(fmtDateTime(Now(), "yyyy-mm-dd"), 9, 2)
rs_hits("domain") = "visit to magicbas.com"
if request.servervariables("http_referer") <> "" then
rs_hits("referer") = request.servervariables("http_referer")
end if
rs_hits.Update
rs_hits.close
Set rs_hits = Nothing
cn_hits.close
%>
magicbas.com