2

我正在尝试将当前月份作为 Visual Basic 脚本中的短字符串:

Dim month
Dim mth

month = Now.Month    ' This doesn't work.
month = Now().Month  ' Tried this too.
month = Month(Now)   ' Also tried this.

mth = MonthName(month, True)  ' (e.g. "Apr" or "Mar")

但是,我不断收到运行时错误:

Microsoft VBScript runtime error: Object required: 'Now'
Microsoft VBScript runtime error: Object required: 'Now()'
Microsoft VBScript runtime error: Type mismatch 'Month'

我可以Now很好地用作字符串:

CStr(Now)

或者作为一个普通的值

Dim val
val = Now

如何Now用作对象来访问其成员函数?也许我将 Visual Basic 功能与 VB 脚本混淆了?

4

4 回答 4

3

VBScript 日期不是对象 - 使用 Month(SomeDate) 函数获取 SomeDate 的月份

>> WScript.Echo Month(Now)
>>
4

要获取月份的名称(缩写或完整),请使用:

>> WScript.Echo MonthName(Month(Now()),False)
>> WScript.Echo MonthName(Month(Now()),True)
>>
April
Apr

(从@collapsar 窃取,但使用第二个参数的正确(布尔)类型)。

Month() 的官方文档:这里 MonthName():这里

[给出的示例是“活”代码,如果出现错误,则应归咎于您的代码]

于 2013-04-21T12:54:03.987 回答
2

试试这行代码:

MonthName(Month(Now()),1)

一个独立的解决方案:

Dim imonth
Dim mth

imonth = Month(Now())   ' Also tried this.

mth = MonthName(Month(Now()))

WScript.Echo "mth = " & mth
WScript.Echo "mth_short = )" & MonthName(Month(Now()),1)
于 2013-04-21T12:51:48.403 回答
1

问题是 Visual Basic 脚本不区分大小写,并且我的变量month与内置的Month.

于 2013-04-21T13:08:46.080 回答
0

这里这里给出的

句法:

Month(Now)
于 2013-04-21T12:55:04.810 回答