没有在VBScripts上添加日期

时间:2017-01-17 05:00:48

标签: vbscript

val = "0"&now

msgbox val'我在1之前得到“0”,如01/16/2017 10:10:12 PM

如果我将其更改为

val2 = DateAdd("d",2,"0"&Now)

msgbox val2'我在1前面没有得到“0”。

任何想法,我错了什么?

2 个答案:

答案 0 :(得分:0)

我认为你将不得不建立它:

' Add your required day
' ------------------------
nNowAdd = DateAdd("d", 2, Now())

' Build the date/time string from components
' with leading zeros -> Right("0" & Blah, 2)
' ------------------------------------------
val2 = Right("0" & Day(nNowAdd), 2) & "/" & _
Right("0" & Month(nNowAdd), 2) & "/" & Year(nNowAdd) & _
" " & Right("0" & Hour(nNowAdd), 2) & ":" & Right("0" & Minute(nNowAdd), 2)

答案 1 :(得分:-1)

您不会保持格式化(从底层数据创建奇特的字符串)和操纵/计算数据不同。

' The concatenation operator & converts its operands to strings
WScript.Echo 1, TypeName(Date()), TypeName(Date() & "")
' DateAdd() converts its third argument to a date
WScript.Echo 2, DateAdd("d", 1, "0" & Date()) 
' Fails
WScript.Echo 3, DateAdd("d", 1, "BAD" & Date()) 

输出:

1 Date String
2 18.01.2017
e:\misc\x.vbs(6, 1) Laufzeitfehler in Microsoft VBScript: Typenkonflikt: '[string: "BAD17.01.2017"]'

您在AddDate()调用中添加的“0”在转换时会丢失;返回的值是一个不知道零填充的日期。