asp年月日灵活日期格式

王朝学院·作者佚名  2009-04-23
窄屏简体版  字體: 小  |  中  |  大  |  超大  

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

%>

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航