注:这篇文章写给有一定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
%>