注:這篇文章寫給有一定ASP編程基礎的初學者!
5.1長假和網友小愛(一個夢想成為程序員的PLMM ^_^)交流ASP編程技術,她問起日期格式設定的問題,例如:2005-1-1想變成2005-01-01或者20050101
這個問題以前也有網友問過我,總覺得不是什麼重要問題,從沒當回事(總覺得意義不大), DW編程中對於日期格式的設定中還真沒有這個格式,要想實現這樣的格式,只能是手寫ASP代碼實現。
偷個懶上網搜一搜交差了事,也不知道是沒有還是......居然沒找到!
不管了,又不是什麼了不得的技術,可在網上閒逛了一會,仔細想來,覺得雖然問題簡單,可很多人卻無從下手這是為什麼呢?而這樣的問題又是高手的盲區(太簡單了),事總得有人做麼
首先分析一下日期數據是由年月日時分秒組成的,也就是說需要先得到年、月、日各自的數據,再怎麼組合就容易了麼,這裡就需要用到日期函數。那麼程序就可以直接寫成如下:
yy=year(rs("字段名")
mm=mouth(rs("字段名")
dd=day(rs("字段名")
Response.Write(yy&mm&dd)
這樣2005-1-1就變成200511了,但這裡有個問題,就是月日遇到小於10的數之前沒有0,這樣日期就不是8位一組,不整齊。那麼如何實現<10的月份、日期在前邊自動添加“0”呢?
了解編程語言的朋友一定知道在程序中控制程序流程的語句主要可以分為條件語句和循環語句,在VBScript中可使用以下條件語句:
If...Then...Else 語 句
Select Case 語 句
If...Then...Else語句用於計算條件是否為True或False,並且根據計算結果指定要運行的語句。通常,條件是使用比較運算符對值或變量進行比較的表達式,If...Then...Else語句可以按照需要進行嵌套。
這裡我直接將程序寫成如下:
程序代碼
<% =year((rsxiaoai.FIElds.Item("字段名").Value))%>
<% If month((rsxiaoai.FIElds.Item("字段名").Value))<9 Then %>
-0<%=month((rsxiaoai.FIElds.Item("字段名").Value))%>
<% Else %>
<%=month((rsxiaoai.FIElds.Item("字段名").Value))%>
<% End If %>
<% If day((rsxiaoai.FIElds.Item("字段名").Value))<9 Then %>
-0<%=day((rsxiaoai.FIElds.Item("字段名").Value))%>
<% Else %>
-<%=day((rsxiaoai.FIElds.Item("字段名").Value))%>
<% End If %>
這樣2005-1-1就變成2005-01-01了
這時問小愛,她告訴我是她這樣實現的
<%
if len(month(rsa("字段名")))>1 then
s=month(rsa("字段名"))
else
s="0"&month(rsa("字段名"))
end if
if len(day(rsa("字段名")))>1 then
s2=day(rsa("字段名"))
else
s2="0"&day(rsa("字段名"))
end if
Response.Write(year(rsa("字段名"))&"-"&s&"-"&s2)
%>
編寫類似程序實現方法有很多,比如Select Case更應該簡潔
本著學習及應用方便我編了一個函數,初學者可直接調用,程序如下:
程序代碼
<%
Function DateFormat(strDate)
’****************************************
’函數名:Date8Format
’作 用:輸出2Digit位左邊帶0整數
’參 數:無
’返回值:如Date8Format(),即輸出20050101,為2005年01月01日
’關聯函數:無
’程序開發: 沉默等待回答(QQ:88372960)感謝支持:小愛(QQ:174015566)
’開發日期:2005-5-6
’****************************************
yy=year(strDate)
if len(month(strDate))>1 then
mm=month(strDate)
else
mm="0"&month(strDate)
end if
if len(day(strDate))>1 then
dd=day(strDate)
else
dd="0"&day(strDate)
end if
if len(hour(strDate))>1 then
hh=hour(strDate)
else
hh="0"&hour(strDate)
end if
if len(minute(strDate))>1 then
mi=minute(strDate)
else
mi="0"&minute(strDate)
end if
if len(second(strDate))>1 then
se=second(strDate)
else
se="0"&second(strDate)
end if
’輸出年月日格式
’Response.Write(yy&"-"&mm&"-"&dd)
’輸出年月日時分秒格式
Response.Write(yy&"-"&mm&"-"&dd&" "&hh&":"&mi&":"&se)
’輸出帶日期格式的4為隨機數
’ randomize
’ ranNum=int((9000*rnd)+1000)
’ Response.Write(yy&mm&dd&hh&mi&se&ranNum)
End Function
%>