未在VBScript上获取添加的日期

未在VBScript上获取添加的日期,vbscript,Vbscript,msgbox val'我在1前面得到“0”,例如2017年1月16日10:10:12下午 如果我改成 val = "0"&now msgbox val2'我在1前面没有得到“0” 你知道我做错了什么吗?你没有保持格式化(从基线数据创建奇特的字符串)和操作/计算数据的不同 val2 = DateAdd("d",2,"0"&Now) 输出: ' The concatenation operator & converts its operands to strings WS

msgbox val'我在1前面得到“0”,例如2017年1月16日10:10:12下午

如果我改成

val = "0"&now
msgbox val2'我在1前面没有得到“0”

你知道我做错了什么吗?

你没有保持格式化(从基线数据创建奇特的字符串)和操作/计算数据的不同

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

' 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()) 

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

我认为您必须构建它:

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

这是一个常见的错误。当计算日期值时,请确保您正在使用日期,当您准备格式化日期以某种方式显示(零填充等)时,请将其转换为字符串。因此,正常执行
DateAdd()
,然后格式化它。看见
' 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)