VBS脚本标记当前日期或时间
Now – 获得当前的日期和时间
Date – 获得当前的日期
Time –返回当前的时间
如:
在用 dates 工作的时候,确定这个数据是时间还是其他是非常重要的。这个对于 WMI 查询和对数据库进行相关操作的时候十分重要。在这些情况下,如果你使用了非法的日期类型,脚本将会报错。而 IsDate 的功能就是告诉你这个数据是不是一个日期的值。当这个值不是一个日期的时候,他返回一个 false(0),如果是一个日期,就返回一个 true(1),日期的值可以用以下方法标识:用#号来标识时间。这是一种被推荐的办法。因为这样的办法消除了防止 VB 脚本将其它非日期的数据解释成日期的可能。如:
#9/3/2002# ,说明:中文系统格式为#年/月/日#。
当然为了确保日期的格式合法,你也可以打开计算机“区域和语言”选项,然后选择自定义,来进行设置。
下面这个脚本创建一个数组,然后列举里面的数值。这个脚本用 IsDate 来决定是不是为合法的日期,并且回显出来这个合法的日期和一段消息,来表示这个是合法的日期。
DateArray = Array("6/1/2002", "June 1, 2002", "6", "6/1")
For Each dtmDate in DateArray
If IsDate(dtmDate) = 0 Then
Wscript.Echo dtmDate & " is not a valid date."
Else
Wscript.Echo dtmDate & " is a valid date."
End If
Next
说明:为什么 6/1 也是一个合法的日期?因为在 vb 脚本中使用 IsDate 函数的时候,如果脚本遇到一个似是而非的日期时如6/1 的 month/day 的时候, 他自动的添加当前的年份,而变成了 month/day/year,在上面的这个脚本中,运行的年份是2002 年,所以这个日期就变成了 6/1/2002,这个是一个合法的日期。
我们所感兴趣的有时只是时间或者日期的一部分。例如,你可能有一个备份的脚本,只有在周日或者不是周末的时候来备份你的数据。这样,你可能每天都获得你的事件日志,在每月的 15,30 号清除日志。
VB 脚本用两种特别的办法来的获得当前的日期和时间的一部分。DatePart 函数可以获得当前日期时间的任何部分。此外VB 脚本还提供了其它诸如:Day ,Month,Year 这样的函数来获得日期或者时间的一部分。DatePart 可以获得当前日期时间的特殊部分,它要求两个参数:
Yyyy-年份,返回当前的时间值的年份
q-季度,返回当前季度。
m-月份,返回当前的月份信息
1 – January 2 – February 3 – March 4 – April
5 – May 6 – June 7 – July 8 – August
9 – September 10 – October 11 – November 12 - December
y-一年中的多少天,返回当前日期的数值。从 1 月 1 号起算到 12 月 31 号为止。如2 月 1 号是这个年的第 32 天。
d-日。返回是这个月的多少天。例如 4 月 17 日,则返回 17
w-周几,返回当前周的周几的信息。
1 – Sunday 2 – Monday 3 – Tuesday 4 - Wednesday
5 – Thursday 6 – Friday 7 Saturday
ww-一年中的第多少周,返回当前周的信息,1 月 1 号认为是第一周,12 月 31 号是第 52 周。尽管如此,你仍然可以确定哪周是一年中的第一周。
H-小时。返回一天 24 小时的格式中是第多少个小时。例如,下午 2:00 会返回 14,下午 6:00 会返回 18。在午夜到凌晨一点的时候,返回的值是 0,午夜 12 点返回的也是 0。
n-分钟,返回当前时间的分钟。
s-秒数:返回是当前分钟的秒数。
为了使用DatePart 这个函数,你可以创建一个变量并且赋值给它。例如如下的代码将你计算机上当前的时间的年份赋值给变量 CurrentYear
CurrentYear = DatePart("yyyy", Date)
在上面的例子中,用到了如下两个参数:
"yyyy 表示从特定的日期返回年份,这个参数必须放在引号以内。
Date 用来解析的当前的日期,你也可以把特定的日期用引号括起来(例如”6/1/2002”)或者用一个变量来赋值个一个 DATE,例如如下两行代码返回值为 1997
DateToCheck = #8/15/1977#
CurrentYear = DatePart("yyyy" , DateToCheck)
注意:当将一个日期赋值给一个变量的时候,你可以用#将日期放在中间。这样保证 vb 脚本认为它是日期,而不是数字或者字符串等变量。当然你也可以用 CDate 函数来实现这个功能。下面脚本解析出当前的日期,然后显示出当前日期的分支(组成部分)。
Wscript.Echo Now
Wscript.Echo "Year: " & DatePart("yyyy" , Now)
Wscript.Echo "Quarter: " & DatePart("q", Now)
当你给DatePart 函数一个错误时间时,它不会报错,但是不会返回你期待的结果。例如,如下代码想返回1899:
Wscript.Echo DatePart("yyyy", "8:00 AM")
这行代码返回的是 0
Wscript.Echo DatePart("h", "12/1/2002")
除了 DatePart 函数以外,还其它函数同样可以更改时间的值。如:
Day、Hour、Minute、Month、Second、Weekday、Year等