2012-01-03 85 views

回答

4

嘗試CDATE(tt)看到http://www.w3schools.com/vbscript/func_cdate.asp。我用

的VBScript CDATE

如在谷歌的關鍵字。有更多的結果。

編輯:基於下面的評論(我混合了對不起),使用

FormatDateTime(date,format) 

格式包含以下常量:

  • 0 = vbGeneralDate - 默認。返回日期:mm/dd/yy和時間,如果指定了 :hh:mm:ss PM/AM。
  • 1 = vbLongDate - 返回日期:平日,MONTHNAME,年
  • 2 = vbShortDate - 返回日期:MM/DD/YY
  • 3 = vbLongTime - 返回時間:HH:MM:SS PM/AM
  • 4 = vbShortTime - 返回時間:HH:MM

(從http://www.w3schools.com/vbscript/func_formatdatetime.asp複製)

+0

感謝您的回放,但我想將其更改爲日期時間不僅日期。 – 2012-01-03 10:03:09

+0

看到我的編輯帖子。 – reporter 2012-01-03 11:34:56

+0

注意:鏈接看起來已經死了(並且它通常被認爲是w3schools鏈接通常比其他鏈接更不重要) – 2016-01-31 15:47:15

0

如果不需要你毫秒,你可以使用以下:

<script type="text/vbscript"> 
    s="2008-10-20 10:00:00.0000000" 
    arr= Split(s, ".") 
    d=CDate(arr(0)) 
    document.write(d) 
</script> 
0

我相信cdate依賴於本地設置來解析字符串。這在許多情況下都不好。

爲了避免這種情況,你需要使用 DateSerial()

,如果需要添加任何時間組件結果分開。

0

此鏈接,(MS CDate page)解釋說:

adate = CDate(astring) 

將字符串轉換成日期對象。因爲在那裏,你可以用FormatDateTime function

str = FormatDateTime(Date) 

FormatDateTime功能是「智能」格式化 - 它會爲日期和時間格式,如果兩者都存在,否則會與哪個日期或時間的格式是目前。

1

我提出了一個安全的解決方案,其返回結果只有在轉換成功:

s="2008-10-20 10:00:00.0000000" 
On Error Resume Next 
d=CDate(Left(s,19)) 
On Error Goto 0 
if not IsEmpty(d) then MsgBox d 

嘗試一個非有效的日期或無有效的格式。結果將是空的。

s="2008-02-31 10:00:00" 

在相同的上下文中,有必要初始化CData的變量收集結果。我建議將它初始化爲空。下面的示例顯示了這種情況 - 在一個字符串數組計數有效日期:

Lines = array("2008-10-20 10:00:00.0000000", "2008-10-20 10:00:00", "", "2008-02-31", "Today", "2017-02-7") 
On Error Resume Next 
Count=0 
for each Line in Lines 
    d=Empty 
    d=CDate(Line) 
    if not IsEmpty(d) then Count=Count+1 
next 
On Error Goto 0 
MsgBox "Number of valid dates is "&Count 

正確答案是2沒有初始化,我們得到5作爲CDATE所以變量從最近的迭代中保持值不做任何錯誤在循環。

相關問題