rem*_*rem 0 vbscript asp-classic
从用户获取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)
Run Code Online (Sandbox Code Playgroud)
不要使用<和>比较日期.有时它会起作用,但通常不会.更糟糕的是,它看起来似乎有效,因为它没有给出错误,但结果将是错误的.在您的情况下,您几乎肯定会得到错误的结果,因为您所谓的日期实际上是字符串,字符串比较与日期比较完全不同.(例如,如果您将"9-15-2016","1-15-2017"和"12-15-2016"排序为字符串,您将获得1月,12月,9月.)
相反,请IsDate()确保您实际使用的是有效日期1,然后使用它DateDiff("d", date1, date2)来确定以后的日期.如果date1较大(稍后发生)date2,则结果将小于0.(您可以使用您想要的任何间隔,但"d""天数"可能是最有用的.)
1如果您正在处理用户输入,这一点尤其重要:即使我们忽略了恶意企图的问题,人们也会对如何撰写日期提出有趣的想法.