Asp classic 经典Asp日期比较无法正常工作

Asp classic 经典Asp日期比较无法正常工作,asp-classic,Asp Classic,我在我的问题中看到过两个类似的标题,但它们的重点不同 我想问的是 我试着比较两次约会。是的,听起来非常简单 问题是: 我有两个变量,我试图将这两个变量与Now()进行比较 就像: If startDate < Now() and endDate> Now() Then do something.... End If 当我比较这两个日期变量时: If startDate < Now() Then do something.... End If 它返回:真的。

我在我的问题中看到过两个类似的标题,但它们的重点不同

我想问的是

我试着比较两次约会。是的,听起来非常简单

问题是:

我有两个变量,我试图将这两个变量与Now()进行比较

就像:

If startDate < Now() and endDate> Now() Then 
do something....
End If
当我比较这两个日期变量时:

 If startDate  < Now()  Then 
    do something....
End If
它返回:真的。它应该返回FALSE,不是吗

If startDate  > Now()  Then 
        do something....
    End If
 If endDate  < Now()  Then 
        do something....
    End If
如果endDate
但是在这里,它返回的是正确的。我的意思是它返回的是FALSE,这是它应该返回的

真奇怪。我检查了所有这些变量的值及其比较结果。价值观看起来不错,没什么奇怪的。但是当我比较startDate和Now()时,为什么startDate表现得比Now()更好呢?我不明白

我试过:

     If FormatDateTime(startDate) < FormatDateTime(Now()) Then do something
     If FormatDateTime(CDate(startDate)) < FormatDateTime(CDate(Now())) Then do something
     If DateValue(startDate) < DateValue(Now()) Then do something
如果FormatDateTime(startDate)
还尝试了上述一些论点。但是没有运气

他们一个也不工作

这个问题在过去几个小时里一直困扰着我

希望解释清楚

寻求建议

提前谢谢

编辑:NOW()是2013-09-05 12:30 PM

尝试使用DateDiff()函数。这将返回所需时间间隔(秒、分钟、天等)的差值。然后,您可以轻松地将其与正在检查的值进行比较

链接:

您还可以尝试使用CDate()函数查看将其转换为日期是否可以正常执行

If CDate(startDate) < Now() and CDate(endDate) > Now() Then 
    do something....
End If
如果CDate(startDate)Now()那么
做点什么。。。。
如果结束

我想回答我自己的问题,以帮助有同样问题的人

当我比较的时候

If FormatDateTime(CDate(startDate)) > FormatDateTime(CDate(Now())) Then 
   Do something...
End If
它没有正常工作(这是非常奇怪的,我仍然没有得到它!)

但是,当我删除FormatDateTime时,如下所示:

If CDate(startDate) > CDate(Now()) Then 
       Do something...
    End If
它返回正确的值

我不知道发生了什么变化,但我只能说“如期完成”


谢谢

您应该尝试使用CDate()进行铸造

CDate识别日期文字和时间文字,以及一些在可接受日期范围内的数字。将数字转换为日期时,整个数字部分将转换为日期。数字的任何小数部分都转换为一天中的某个时间,从午夜开始

你也可以从中找到一些东西


希望有帮助

您使用的是ASP.NET还是经典ASP?他们不是一回事,当然不是。它的经典asp.NET标记已被删除。它被错误地贴上了标签。谢谢:)谢谢你的建议
FormatDateTime()
是为了在输出到某处之前更改格式-键在
startDate
endDate
上运行
CDate()
。它将值转换为正确的日期时间数据类型(这就是
Now()
输出的数据类型,无需冗余地重新类型转换)。我建议,如果需要进行大量比较检查,请在赋值时强制转换变量。e、 g.:
startDate=CDate(db(“startDate”))
或您如何设置startDate的值。
If CDate(startDate) > CDate(Now()) Then 
       Do something...
    End If