使用date()比较2017年的日期会导致错误



从用户那里获得2个日期,除了:如果两个日期在2017年,则在明显不应该的情况下显示错误消息。

我手动将2016年更改为2017年,以查看它是否有所不同,但没有(使用Replace)。

这是验证代码:

todays_date = Date()
todays_date = Replace(todays_date, "/", "-")
If m_date_01 < todays_date Or m_date_02 < todays_date Then
    m_valid   = False
    m_message = m_message & "<li>dates cannot be in the past</li>"
End If
response.write(todays_date)
response.write(m_date_01)
response.write(m_date_02)

不要使用 <>比较日期。有时它会起作用,但通常不会。更糟糕的是,从某种意义上说,它看起来像是在起作用,因为它没有出错,但结果是错误的。就您而言,几乎可以肯定的是,由于所谓的日期实际上是字符串,并且字符串比较的起作用与日期比较差异很大。(例如,如果您将" 9-15-2016"," 1-15-2017"one_answers" 12-15-2016" 作为字符串,您将获得一月,然后是12月,然后9月。)

相反,使用IsDate()来确保您实际上与有效日期 1 ,然后使用DateDiff("d", date1, date2)确定较晚的日期。如果date1date2更大(发生的),则结果将小于0。(您可以使用所需的任何间隔,但是"天数"的"d"可能是最有用的。)

1 如果您正在使用用户输入:即使我们忽略了恶意意图的问题,人们都有,um,um, figest 关于如何写日期的想法。

最新更新