网上大部分的日期格式化函数是通过传递一个格式化类型的数字参数,格式化格式有限,不是很灵活。站长仿照PHP的gmdate函数,写了个ASP的函数,可以自定义格式化字符串,规则和PHP的类似。
现在只实现了 Y 四位数年份 y 二位数年份 M月份 m 月份带前导0 D 日 d 日带前导0 H 24小时格式 h 12小时格式 I 分钟 i 分钟带前导0 S 秒 s 秒带前导0
‘// GMDate 格式化日期时间函数
’// 参数 myDate 日期时间 Template 格式化字符串
'//网风软件工作室 www.ifree2008.com
Function GMDate(myDate,Template)
If Not IsDate(myDate) Then
GMDate = Template
Exit Function
End If
If Template = "" Then
Template = "Y-m-d H:i:s"
End If
Dim mYear,mMonth,mDay,mHour,mMinute,mSecond
mYear = Year(myDate)
mMonth = Month(myDate)
mDay = Day(myDate)
mHour = Hour(myDate)
mMinute = Minute(myDate)
mSecond = Second(myDate)
mHour12 = mHour mod 12
if mHour12=0 then mHour12=12
Template = Replace(Template,"Y",mYear)
Template = Replace(Template,"y",Right(mYear,2))
Template = Replace(Template,"M",mMonth)
Template = Replace(Template,"m",Right("00" & mMonth,2))
Template = Replace(Template,"D",Day(myDate))
Template = Replace(Template,"d",Right("00" & mDay,2))
Template = Replace(Template,"H",Right("00" & mHour, 2))
Template = Replace(Template,"h",Right("00" & mHour12,2))
Template = Replace(Template,"I",mMinute)
Template = Replace(Template,"i",Right("00" & mMinute,2))
Template = Replace(Template,"S",mSecond)
Template = Replace(Template,"s",Right("00" & mSecond,2))
GMDate = Template
End Function
函数调用示例
<%=GMDate(now, "Y-m-d H:i:s")%>
将输出24小时格式的日期时间 2010-06-02 13:14:55
