我在查询字符串中得到"August 222015 10:55",我想将其转换为"2015-08-22 10:55"。
到目前为止,我有这个:
datum=request.querystring("tid")
response.write datum ----this writes out August 22, 2015 10:55
datum=Cstr(datum)
DateVar = datevalue(datum)
NewDateVar = year(DateVar) & "-" & month(DateVar) & "-" & day(DateVar)
NewTimeVar=timevalue(datum)
newdatum = NewDateVar & " " & NewTimeVar
但是现在我在DateVar = datevalue(datum)
上得到一个类型不匹配错误。
如果我使用datum="August 22, 2015 10:55"
进行测试,那么它可以工作。
要拼写出来:
>> s = "August 22, 2015 10:55"
>> d = CDate(s)
>> WScript.Echo TypeName(d), d
>>
Date 22.08.2015 10:55:00 <-- german locale!
添加:
要获得所需的格式,可以使用此处描述的策略。
DateVar = datevalue("August 22, 2015 10:55")
NewDateVar = year(DateVar) & "-" & month(DateVar) & "-" & day(DateVar) & "-" & time(DateVar)
无论遇到困难,经典ASP都倾向于使用美国日期格式。然而,以任何方式格式化显示的日期(或传递到数据库)都很容易。
以下内容将用0填充任何个位数的值。如果您不需要,那么只需使用简单的函数,而不使用Right()
。
Dim datum, mm, dd, yyyy, hh, nn, fdatum
datum = Request.Querystring("tid")
If IsDate(datum) Then
datum = CDate(datum)
mm = Right(100 + Month(datum),2)
dd = Right(100 + Day(datum),2)
yyyy = Year(datum)
hh = Right(100 + Hour(datum),2)
nn = Right(100 + Minute(datum),2)
fdatum = yyyy & "-" & mm & "-" & dd & " " & hh & ":" & nn
Else
fdatum = datum '- or whatever fallback value you want
End If