我的IIS配置可能有问题。 Windows Server 2012 Foundation IIS 8 本地系统捷克语,日期格式dd.mm.rr ASP经典
IsDAte("18-10-13") - TRUE
IsDAte("18#10#13") - TRUE
IsDAte("18.10.13") - FALSE
IsDAte("18.10.2013") - TRUE
我需要IsDAte(18.10.13)返回true。 为什么现在IsDAte(18.10.13)会返回false?
答案 0 :(得分:1)
<强>更新强>
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列表here。
答案 1 :(得分:0)
IsDate函数使用本地设置来确定字符串是否可以转换为日期。 更多信息here。
我认为Windows Server 2012上的日期设置不提供“DD.MM.YY”选项。