小生在用ASP开发OA的时候用到定单号由时间+4个随机数来生成,以前在2000下没什么问题,可后来在新装的XP下运行时出错,出错环节在写数据库的时候,提示是类型不匹配,后来response跟踪了一下,发现输出的定单号里有中文字:上午,(真得晕死),想想时间格式有操作系统来决定,直接取的话不太好,解决的方案有两种
一 进入控制面板设置时间格式,如果仅仅本地测试那当然可行,要是在虚拟主机上呢?? 当然这里不讨论你能远程控制了,呵呵,这个方法有一定的局限性;
二 自己写个格式话时间函数,这样你的程序放哪都不受影响,通用性强,不足之处就是多调用了个函数,效率上可能有点影响(但这种影响几乎是忽略不计的);
综合考虑:我选择了后一种,现在把这个函数帖出来,希望有需要的能用上:
Function Format_Time(s_Time, n_Flag)
'******************************************************
' 作用:格式化时间(显示)。
' 参数:二个,一个是时间,另外一个是格式化的参数,也就是要用那种形式参数:n_Flag
' 1:"yyyy-mm-dd hh:mm:ss"
' 2:"yyyy-mm-dd"
' 3:"hh:mm:ss"
' 4:"yyyy年mm月dd日"
' 5:"yyyymmdd"
' 6:"yyyymmddhhmmss"
' 7:"yyyymmddhhmm"
' 8:"mm月dd日
'******************************************************
Dim y, m, d, h, mi, s
Format_Time = ""
If IsDate(s_Time) = False Then Exit Function
y = cstr(year(s_Time))
m = cstr(month(s_Time))
If len(m) = 1 Then m = "0" & m
d = cstr(day(s_Time))
If len(d) = 1 Then d = "0" & d
h = cstr(hour(s_Time))
If len(h) = 1 Then h = "0" & h
mi = cstr(minute(s_Time))
If len(mi) = 1 Then mi = "0" & mi
s = cstr(second(s_Time))
If len(s) = 1 Then s = "0" & s
Select Case n_Flag
Case 1
' yyyy-mm-dd hh:mm:ss
Format_Time = y & "-" & m & "-" & d & " " & h & ":" & mi & ":" & s
Case 2
' yyyy-mm-dd
Format_Time = y & "-" & m & "-" & d
Case 3
' hh:mm:ss
Format_Time = h & ":" & mi & ":" & s
Case 4
' yyyy年mm月dd日
Format_Time = y & "年" & m & "月" & d & "日"
case 5
'yyyymmdd
Format_time= y&m&d
case 6
'yyyymmddhhmmss
Format_time=y&m&d&h&mi&s
case 7
'yyyymmddhhmm
Format_time=y&m&d&h&mi
case 8
'mm月dd日
Format_time=m & "月" & d & "日"
End Select
End Function
'调用例子: gettime = Format_Time(now,4)