0

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 を返すのはなぜですか?

4

2 に答える 2

2

アップデート:

この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 のリストについては、こちらを参照してください。

于 2013-10-16T14:53:34.640 に答える
0

IsDate 関数は、ローカル設定を使用して、文字列を日付に変換できるかどうかを判断します。詳細はこちら

Windows Server 2012 の日付設定で「DD.MM.YY」オプションが提供されているとは思いません。

于 2013-10-16T11:02:06.200 に答える