2

私は FormatDT という関数を作成しました。\include\basic_function.asp

その関数のコードは次のとおりです。

function FormatDT(ddate,format)
        ddate = cdate(ddate)
        Set re = New RegExp
        re.Pattern = "%."
        re.Global = True
        re.IgnoreCase = False
        're.MultiLine = True
        set matches = re.execute(format)
        hasil = ""
        tmp = format
        for each match in matches
            fmt = match.value
            select case fmt
                case "%d" hasil = day(ddate)
                case "%D" hasil = right("00" & day(ddate),2)
                case "%m" hasil = month(ddate)
                case "%M" hasil = right("00" & month(ddate),2)
                case "%b" hasil = left(MonthName(month(ddate)),3)
                case "%B" hasil = MonthName(month(ddate))
                case "%y" hasil = right(year(ddate),2)
                case "%Y" hasil = year(ddate)
                case "%h" hasil = hour(ddate)
                case "%H" hasil = right("00" & hour(ddate),2)
                case "%n" hasil = minute(ddate)
                case "%N" hasil = right("00" & minute(ddate),2)
                case "%s" hasil = second(ddate)
                case "%S" hasil = right("00" & second(ddate),2)
                case else hasil = replace(fmt,"%","")
            end select
            tmp = replace(tmp,fmt,hasil)
        next
        FormatDT = tmp
    end function

ここでこの関数を使用します:

<input style="text-align:center" class="label" style="width:6em;" type="text" id="txtDate" name="txtDate" size="12" value="<%=FormatDt(dtglvalid,"%M/%D/%Y")%>" >

ページをロードすると、次のようなエラーメッセージが表示されました。

Microsoft VBScript ランタイム エラー '800a005e' Null の無効な使用: 'cDate'
/include/basic_function.asp、行 234

234行目ddate = cdate(ddate)

このエラーを解決するには?

4

1 に答える 1

2

ddateASP は、変数が であると不平を言っていますNULL。あなたのコードを見ると、変数dtglvalidが関数に渡されてエラーを引き起こす NULL であるように見えます。次のようなことができます:

<input ... value="<% if not IsNull(dtglvalid) then Response.Write FormatDt(dtglvalid,"%M/%D/%Y") %>">
于 2012-05-21T08:53:27.110 に答える