You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VBScript生成YYYYMMDD格式两天前日期结果异常如何解决

错误原因

  • 两个版本共同问题:硬编码年、月为当前月1号的年月,完全没有处理跨月、跨年的场景,比如10月2日减2天是9月30日,你的代码依旧会取当前月10月作为结果的月份,自然出错。
  • 第一版额外问题:Day(Now) - 2运算优先级错误,且未处理日为1、2时减完为负数的情况,就会出现-1这类异常输出。
  • 第二版额外问题:DateAdd的第三个参数要求传入日期类型,你传的是Day(Now)返回的纯数字,VBScript会将数字识别为1899-12-30之后的天数,计算结果完全不符合预期,才会出现99这类异常输出。

正确实现代码

' 计算两天前的完整日期,自动处理跨月、跨年逻辑
Dim twoDaysAgo
twoDaysAgo = DateAdd("d", -2, Date) ' Date返回当前系统日期(不含时间),比Now更适配需求

' 拼接为YYYYMMDD格式,月、日不足2位自动补前导零
MyDate = Year(twoDaysAgo) & _
         Right("0" & Month(twoDaysAgo), 2) & _
         Right("0" & Day(twoDaysAgo), 2)

MsgBox MyDate
WScript.Quit

内容的提问来源于stack exchange,提问作者Edward Sheriff Curtis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 18:06:03