asp做網站經常遇到日期格式處理問題,介紹一個有用的vbscript函數formatdatetime()對於access資料庫的日期時間類型欄位儲存的日期,直接從資料庫中讀出顯示的效果是帶時間的如,2009-06 -13 18:00 ,如果只是希望顯示日期該怎麼辦呢?
Vbscrip有一個函數FormatDateTime()。其說明如下:
傳回表達式,此表達式已格式化為日期或時間。
FormatDateTime(Date[, NamedFormat])
參數
Date
必選項。要被格式化的日期表達式。
NamedFormat
可選項。指示所使用的日期/時間格式的數值,如果省略,則使用vbGeneralDate。
設定
NamedFormat 參數可以有以下值:
常數 | 值 | 描述 |
vbGeneralDate | 0 | 顯示日期和/或時間。如果有日期部分,則將該部分顯示為短日期格式。如果有時間部分,則將該部分顯示為長時間格式。如果都存在,則顯示所有部分。 |
vbLongDate | 1 | 使用電腦區域設定中指定的長日期格式顯示日期。 |
vbShortDate | 2 | 使用電腦區域設定中指定的短日期格式顯示日期。 |
vbLongTime | 3 | 使用計算機區域設定中指定的時間格式顯示時間。 |
vbShortTime | 4 | 使用24 小時格式(hh:mm) 顯示時間。 |
Strdate=formatdatetime(rs(date),2)。
因為在vbscript只有一種電腦區域那就是美國,所以只有一種短格式
yyyy-mm-dd.
asp時間日期格式化輸出
1,2010-10-10 00:00:00
2,2010-10-10
3,2010/10/10
4,2010年10月10 00小時00分鐘00秒
5,10-10 00:00:00
6,10/10
7,10月10日
其他變換根據程序要自行添加即可
複製代碼代碼如下:
'轉換時間時間格式化
Function formatDate(Byval t,Byval ftype)
dim y, m, d, h, mi, s
formatDate=
If IsDate(t)=False Then Exit Function
y=cstr(year(t))
m=cstr(month(t))
If len(m)=1 Then m=0 & m
d=cstr(day(t))
If len(d)=1 Then d=0 & d
h = cstr(hour(t))
If len(h)=1 Then h=0 & h
mi = cstr(minute(t))
If len(mi)=1 Then mi=0 & mi
s = cstr(second(t))
If len(s)=1 Then s=0 & s
select case cint(ftype)
case 1
' yyyy-mm-dd
formatDate=y & - & m & - & d
case 2
' yy-mm-dd
formatDate=right(y,2) & - & m & - & d
case 3
' mm-dd
formatDate=m & - & d
case 4
' yyyy-mm-dd hh:mm:ss
formatDate=y & - & m & - & d & & h & : & mi & : & s
case 5
' hh:mm:ss
formatDate=h & : & mi & : & s
case 6
'yyyy年mm月dd日
formatDate=y & 年& m & 月& d & 日
case 7
' yyyymmdd
formatDate=y & m & d
case 8
'yyyymmddhhmmss
formatDate=y & m & d & h & mi & s
end select
End Function