如何使用 asp classic 获取 12 个月前的月份名称?

How to get month name 12 months back with asp classic?

我想显示每个月的简称,从上个月回溯 12 个月,但是在下面的 mon1 和 mon2 上出现错误,我猜是因为那是去年吗?

    mon1=MonthName(Month(Now())-11,1)
    mon2=MonthName(Month(Now())-10,1)
    mon3=MonthName(Month(Now())-9,1)
    mon4=MonthName(Month(Now())-8,1)
    mon5=MonthName(Month(Now())-7,1)
    mon6=MonthName(Month(Now())-6,1)
    mon7=MonthName(Month(Now())-5,1)
    mon8=MonthName(Month(Now())-4,1)
    mon9=MonthName(Month(Now())-3,1)
    mon10=MonthName(Month(Now())-2,1)
    mon11=MonthName(Month(Now())-1,1)
    mon12=MonthName(Month(Now()),1)

那么如何显示now,dec,jan,feb,mar,apr,may,jun,jul,aug,sep,oct 谢谢

这里的问题是 Month() 函数 returns 一个 1 到 12 之间的整数来表示每个月。相反,您想在用 Month().

包装之前从 Now() 值中减去月数

下面是一个使用 For 循环和单一维度 Array.

执行此操作的示例
Dim dt: dt = Now()
Dim i, mon(12)
Const numOfMonths = 12

For i = 1 To numOfMonths
  mon(i) = MonthName(Month(DateAdd("m", i - numOfMonths, dt)), True)
Next

Call Response.Write(Join(mon, vbCrLf))

输出:

Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
Dec
Nov
Oct