首页 > 解决方案 > 如何使用 asp classic 获取 12 个月前的月份名称?

问题描述

我想显示每个月的简称,比上个月早 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)

那么我现在如何显示,十二月,一月,二月,三月,四月,五月,六月,七月,八月,九月,十月谢谢。

标签: vbscriptasp-classic

解决方案


这里的问题是该Month()函数返回一个介于 1 和 12 之间的整数来表示每个月。相反,您希望在Now()Month().

下面是一个使用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

推荐阅读