来自 FormatDateTime() 的经典 ASP / VBSCRIPT 12 小时格式
Classic ASP / VBSCRIPT 12 Hour Format from FormatDateTime()
我当然希望得到一些帮助。我能够从 7/31/2020 08:53:20 AM 等值中破解出我的时间格式为 8:53 AM 的以下内容。
replace(replace(formatdatetime(formatdatetime(myRS("dateTime"),4)),":00 AM"," AM"),":00 PM"," PM")
但我认为有更有效的方法不是吗?
Set speech = CreateObject("sapi.spvoice")
Speech.speak "Here's one way it sets the locale to New Zealand which is 12 hours - it does NOT set time zone"
SetLocale("en-nz")
speech.speak now()
speech.speak "Here's another way" 'if locale is 12 hours it does nothing
Do
If Hour(Now) < 12 then
Var = Hour(Now) & " AM"
else
Var = Hour(Now) - 12 & " PM"
End If
speech.Speak Var & " and " & Minute(Now) & " minutes and " & Second(Now) & " seconds"
wscript.sleep 5
Loop
如你所见,它会说出评论。
<%@LANGUAGE="VBScript"%>
<%
' The actual LCID.
Response.LCID = 2057
Response.CodePage = 65001
Function AM_PM_Time(TheTime, ZeroPad)
Dim actual_LCID, time_formatted, time_split_1, time_split_2
' Make sure the the date or time being passed is valid.
If NOT isDate(TheTime) Then Exit Function
' Make a note of the actual LCID.
actual_LCID = Response.LCID
' Change the LCID to 1033 so time is formatted as 00:00:00 AM/PM.
' If your LCID is already 1033 you can delete the LCID code.
Response.LCID = 1033
' Format the current date / time.
time_formatted = FormatDateTime(TheTime,3)
' Split the time stamp.
time_split_1 = Split(time_formatted,":")
' Split the AM / PM.
time_split_2 = Split(time_formatted," ")
' Revert the LCID back to its original value.
Response.LCID = actual_LCID
' [Optional]
' Zero-pad the first number of the timestamp, for example: "07:45 PM" rather than "7:45 PM"
If ZeroPad Then
If Len(time_split_1(0)) = 1 Then time_split_1(0) = cStr("0" & time_split_1(0))
End If
' Output the newly formatted time.
AM_PM_Time = time_split_1(0) & ":" & time_split_1(1) & " " & time_split_2(1)
End Function
Response.Write AM_PM_Time(Now(),True) & "<br>"
Response.Write AM_PM_Time("2020-08-17 09:00:00",False) & "<br>"
Response.Write AM_PM_Time("14:55:00",True)
%>
示例输出:
07:45 PM
9:00 AM
02:55 PM
我当然希望得到一些帮助。我能够从 7/31/2020 08:53:20 AM 等值中破解出我的时间格式为 8:53 AM 的以下内容。
replace(replace(formatdatetime(formatdatetime(myRS("dateTime"),4)),":00 AM"," AM"),":00 PM"," PM")
但我认为有更有效的方法不是吗?
Set speech = CreateObject("sapi.spvoice")
Speech.speak "Here's one way it sets the locale to New Zealand which is 12 hours - it does NOT set time zone"
SetLocale("en-nz")
speech.speak now()
speech.speak "Here's another way" 'if locale is 12 hours it does nothing
Do
If Hour(Now) < 12 then
Var = Hour(Now) & " AM"
else
Var = Hour(Now) - 12 & " PM"
End If
speech.Speak Var & " and " & Minute(Now) & " minutes and " & Second(Now) & " seconds"
wscript.sleep 5
Loop
如你所见,它会说出评论。
<%@LANGUAGE="VBScript"%>
<%
' The actual LCID.
Response.LCID = 2057
Response.CodePage = 65001
Function AM_PM_Time(TheTime, ZeroPad)
Dim actual_LCID, time_formatted, time_split_1, time_split_2
' Make sure the the date or time being passed is valid.
If NOT isDate(TheTime) Then Exit Function
' Make a note of the actual LCID.
actual_LCID = Response.LCID
' Change the LCID to 1033 so time is formatted as 00:00:00 AM/PM.
' If your LCID is already 1033 you can delete the LCID code.
Response.LCID = 1033
' Format the current date / time.
time_formatted = FormatDateTime(TheTime,3)
' Split the time stamp.
time_split_1 = Split(time_formatted,":")
' Split the AM / PM.
time_split_2 = Split(time_formatted," ")
' Revert the LCID back to its original value.
Response.LCID = actual_LCID
' [Optional]
' Zero-pad the first number of the timestamp, for example: "07:45 PM" rather than "7:45 PM"
If ZeroPad Then
If Len(time_split_1(0)) = 1 Then time_split_1(0) = cStr("0" & time_split_1(0))
End If
' Output the newly formatted time.
AM_PM_Time = time_split_1(0) & ":" & time_split_1(1) & " " & time_split_2(1)
End Function
Response.Write AM_PM_Time(Now(),True) & "<br>"
Response.Write AM_PM_Time("2020-08-17 09:00:00",False) & "<br>"
Response.Write AM_PM_Time("14:55:00",True)
%>
示例输出:
07:45 PM
9:00 AM
02:55 PM