在VBScript中格式化当前日期和时间

Big*_*ies 10 vbscript datetime asp-classic

我想知道是否有人可以帮助我.

我是ASP的新手,我想格式化当前的日期和时间,如下所示:

yyyy-mm-dd hh:mm:ss
Run Code Online (Sandbox Code Playgroud)

但我能做的就是以下几点

Response.Write Date
Run Code Online (Sandbox Code Playgroud)

有人可以帮帮我吗.

Lan*_*art 25

默认情况下,日期格式化选项在经典ASP中受限制,有一个功能FormatDateTime()可以根据服务器区域设置以各种方式格式化您的日期.

虽然有内置的日期时间功能,但可以更好地控制日期格式

  • Year(date)- 返回表示年份的整数.通过Date()将返回当前年份.

  • Month(date)- 返回1到12之间的整数,表示一年中的月份.通过Date()将返回当年的当前月份.

  • MonthName(month[, abbv])- 返回表示指定月份的字符串.在传递Month(Date())作为本月将归还当月的字符串.正如@Martha所建议的那样

  • Day(date)- 返回1到31之间的整数,表示该月中的某一天.通过Date()将返回当月的当天.

  • Hour(time)- 返回0到23之间的整数,表示当天的小时数.传递Time()将返回当前小时.

  • Minute(time)- 返回0到59之间的整数,表示小时的分钟.传递Time()将返回当前分钟.

  • Second(time)- 返回0到59之间的整数,表示分钟的第二个.传递Time()将返回当前秒.

功能DateAdd(),Month(),Day(),Hour()Minute()都返回整数.幸运的是,有一个简单的解决方法,可以让你快速填充这些值Second(),它附加Right("00" & value, 2)到值的前面然后从右边取前两个字符.这可确保所有单个数字值的前缀为a 00.

Dim dd, mm, yy, hh, nn, ss
Dim datevalue, timevalue, dtsnow, dtsvalue

'Store DateTimeStamp once.
dtsnow = Now()

'Individual date components
dd = Right("00" & Day(dtsnow), 2)
mm = Right("00" & Month(dtsnow), 2)
yy = Year(dtsnow)
hh = Right("00" & Hour(dtsnow), 2)
nn = Right("00" & Minute(dtsnow), 2)
ss = Right("00" & Second(dtsnow), 2)

'Build the date string in the format yyyy-mm-dd
datevalue = yy & "-" & mm & "-" & dd
'Build the time string in the format hh:mm:ss
timevalue = hh & ":" & nn & ":" & ss
'Concatenate both together to build the timestamp yyyy-mm-dd hh:mm:ss
dtsvalue = datevalue & " " & timevalue

Call Response.Write(dtsvalue)
Run Code Online (Sandbox Code Playgroud)

注意: 您可以在一次调用中构建日期字符串,但决定将其分解为三个变量以使其更易于阅读.


  • 您可以简化更多,而format_zeros使用其他格式:右("00"和月(日期()),2)日和年的格式相同 (3认同)
  • OP似乎不需要它,但也有MonthName(mm,abbr)函数 - mm是月号,abbr是一个布尔值,表示是否缩写月份名称. (2认同)
  • @Lankymart你应该使用你提供给我的快捷方式修改你的答案,例如,tmp = Right("00"和Hour(Time()),2).你不能转储format_zeros()函数吗?我很感谢你让我们其他人在我确定你可以轻松回答问题的时候. (2认同)