无法正常组合条件在VBScript中的if语句中

时间:2018-09-13 16:20:47

标签: if-statement vbscript multiple-conditions

我试图确定时间是否在12点至1点之间。这是我的if语句:

If InStr(Time,"12") AND InStr(Time,"AM") Then 
    ' Do something
Else
    ' Do something else
End If

问题是即使两个条件都为真,该语句的计算结果仍为false。我知道这是因为我尝试过像这样的嵌套

If InStr(Time,"12") Then
    If InStr(Time,"AM") Then
        ' Do something
...

那行得通。这也可以

If InStr(Time,"12")<>0 AND InStr(Time,"AM")<>0 Then
    ' Do something
...

但是,如果它作为嵌套if起作用,为什么不能在单个if语句中测试两个嵌套的if条件?

我将InStr函数调用替换为它们返回的值

If 1 AND 10 Then
    ' Do something
Else
    ' Do something else
End If

发生了同样的事情:if语句的评估结果为false,而执行了“其他操作”命令。但是,当我将第二个条件作为另一个if语句嵌套在第一个if语句中时,执行了“执行操作”命令。

为什么会这样,并且没有<> 0并且没有嵌套,有没有办法做到这一点?

1 个答案:

答案 0 :(得分:1)

当您使用Time()函数时,如果以这种方式返回类似10:12:12 AM的结果,则Instr将得到Ture,因为Instr默认使用{{1} }以vbbinarycompare的二进制格式查找任何12,并且存在sec和min 12,因此它将返回True。 只需尝试:

10:12:12 AM