更新:
该isDate
检查似乎返回带有 2 位数年份输入的无关结果,因此您可以使用此函数来检查有效日期:
function checkDate(datestr)
dim temp, dt, d, m, y
checkDate = false
temp = split(datestr, ".")
if UBound(temp) = 2 then
d = CInt(temp(0))
m = CInt(temp(1))
y = CInt(temp(2))
if y<100 then
y = 2000 + y
end if
dt = DateSerial(y, m, d)
if day(dt)=d and month(dt)=m then
checkDate = true
end if
end if
end function
插入 DateSerial 函数调用和对日期和月份的检查以确保无效日期(例如 30.02.2013)将返回 false。它还支持 4 位数的年份输入,但您应该知道,在几百年后您将遇到使用此功能的 Y3k 问题。:)
正如@Elie 已经说过的那样, isDate 使用当前的语言环境设置。但是您可以设置您想要匹配所需日期格式的语言环境。
dim locale
' uses your current locale and will return false
Response.Write "<p>TEST: " & isDate("15.10.2013") & " --> " & GetLocale() & "</p>"
locale = GetLocale() ' save current locale
SetLocale(1031) ' de_AT
' uses de_AT locale and will return true
Response.Write "<p>TEST: " & isDate("15.10.2013") & " --> " & GetLocale() & "</p>"
SetLocale(locale) ' restore your locale
在此处查找区域设置 ID 列表。