我试过在互联网上搜索这个,但我差不多了。
基本上,我有这个:
If Hour(Now()) >= 8 And Hour(Now()) < 17 then response.write("TEST")
这将显示上午8点到下午5点之间的TEST字样 - 但我希望它可以跨越午夜。
我希望能够说,如果时间是在晚上10点到凌晨4点之间,那就显示出来了。
我正在使用经典ASP - 是否有人可以帮助我 - 我疯了!
目前,我只是把声明放两次 - 就像这样;
If Hour(Now()) >= 22 And Hour(Now()) < 23 then response.write("TEST")
If Hour(Now()) >= 0 And Hour(Now()) < 4 then response.write("TEST")
这有效,但必须有一种方法可以做到这一点,而不必做2 if语句?
答案 0 :(得分:2)
您可以尝试使用
Dim h
h = Hour(Now())
If h >= 22 Or h < 4 Then Response.Write("Test")
或者
If Hour(DateAdd("h", 2, Now)) < 6 Then Response.Write("test")
或者
Select Case Hour(Now())
Case 22,23,0,1,2,3 : Response.Write("test")
End Select
已修改以适应评论
Option Explicit
WScript.Echo CStr(InTime("02:00", "18:00"))
WScript.Echo CStr(InTime("18:00", "22:00"))
WScript.Echo CStr(InTime("15:00", "04:00"))
Function InTime(ByVal startTime, ByVal endTime)
Dim thisTime
thisTime = CDate(FormatDateTime(Now(), vbShortTime))
startTime = CDate(startTime)
endTime = CDate(endTime)
If endTime < startTime Then endTime = DateAdd("h", 24, endTime)
InTime = ( thisTime >= startTime And thisTime <= endTime )
End Function
答案 1 :(得分:0)
好的 - 所以我必须编写自己的函数:
function timeLimit(startTime, endTime)
h=hour(now())
if startTime>endTime then
if h>=startTime or h<=endTime then
timeLimit=True
else
timeLimit=False
end if
elseif startTime<endTime then
if h>=startTime and h<=endTime then
timeLimit=True
else
timeLimit=False
end if
else
if h=startTime then
timeLimit=True
else
timeLimit=False
end if
end if
end function
如果开始时间编号大于结束时间编号,则可以解决此问题 - 如果是,则必须跨越午夜。然后它会相应地行动 - 返回真或假,取决于输入。
所以,如果我想显示单词&#34; Hello World&#34;在晚上8点到下午2点之间,我会用这个:
if timeLimit(20, 14) then Response.Write "Hello World"
如果我想展示&#34; Hello World&#34;在上午8点到下午5点之间,我会用这个:
if timeLimit(8, 17) then Response.Write "Hello World"
如果我只想展示&#34; Hello World&#34;下午4点,我会用这个:
if timeLimit(16, 16) then Response.Write "Hello World"
我希望将来帮助某人。