2012-05-21 28 views
2

我做了一个名为FormatDT功能时,我把它放在\include\basic_function.asp错误“800a005e”无效使用Null:“CDATE”使用ASP经典,VBScript中的函数

这里是函数的代码:

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)

如何解决这个错误?

回答

2

ASP抱怨变量ddateNULL。看着你的代码,它看起来像变量dtglvalid是NULL传递给函数并导致错误。你可以这样做:

<input ... value="<% if not IsNull(dtglvalid) then Response.Write FormatDt(dtglvalid,"%M/%D/%Y") %>"> 
+0

好吧,它的工作原理!多谢,伙计 :) – blankon91