Asp classic 经典Asp日期比较无法正常工作
我在我的问题中看到过两个类似的标题,但它们的重点不同 我想问的是 我试着比较两次约会。是的,听起来非常简单 问题是: 我有两个变量,我试图将这两个变量与Now()进行比较 就像: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 它返回:真的。
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