vbscript的时间函数有好大一堆,可是真的用起来的时候却不一定方便,因为各个函数的作用不一样,用法也不完全一样,所以常常出现不知道用哪个函数来实现某个功能的情况。以下就是偶搜集的和时间相关的函数极其用法,如果有不完整的或是错误的地方欢迎大家补充指正
第一部分:对时间的判断与数据格式变化
(1)IsDate(expression)
expression 参数可以是任意可被识别为日期和时间的日期表达式或字符串表达式。
返回Boolean值.
判断expression是否为合法的日期格式
如:IsDate("2004-10-25 13:14:20"
其值为true
(2)CDate(date)
date是任何合法的日期表达式
返回日期类型
将date转变为转换为 Date 子类型的 Variant
第二部分:时间及其属性
(1)now()
返回当前的日期和时间,格式如下:
年-月-日 时:分:秒 例如:2004-10-26 12:25:03
这是时间的最完整的表达方式
(2)date()
返回当前的日期,格式如下:
年-月-日 例如:2004-10-26
(3)time()
返回当前的时间,格式如下:
时:分:秒 例如:12:25:03
(4)Year(date)
date是任何包含“年”的合法的时间表达式
返回的是date表示的“年”,如:
Year("2004-10-13" 或者Year("October 13, 2004"
其值都为 2004
(5)Month(date)
用法如上
返回的是date表示的“月”
(6)day(date)
用法如上
返回的是date表示的“日”
(7)minute(date),second(date)
用法如上
分别返回date表示的“分”,“秒”
********补充:
如何获取当前的”年“,”月“,”日“,,,?
年:year(now())
以此类推,,
(8)Weekday(date, [firstdayofweek])
date是任何合法的包含日期或者”星期几“的表达式,firstdayofweek是可选参数,指定星期中第一天是星期几的常数,默认值为一,即星期天为第一天。
firstdayofweek的取值:1,2,3,4,5,6,7,0
对应的星期:日,一,二,三,四,五,六,无
注意:当其为0时,表示使用区域语言支持 (NLS) API 设置
该函数返回表示"星期几”的数字,例如:
weekday("2004-10-13",1)或者weekday("2004-10-13"
其值都为4,而这天是“星期三”
而weekday("2004-10-13",2)
其值为3!因为firstdayofweek值为2,表示星期一为一周的第一天!使用该函数及类似的函数(后面还有)的时候一定小心哦
(9)MonthName(month[, abbreviate])
month是月份的数值定义。一月是 1,二月是 2,以此类推。
abbreviate是可选参数,Boolean值,表示月份名称是否简写默认值为false。
该函数返回月份的名字
如:monthname("2004-10-13", false)其值分别为:october(如果在中文系统里无论abbreviate为true还是false返回都是“十月”)
(10)WeekdayName(weekday[, abbreviate][,firstdayofweek])
weekday是星期中某天的数值定义。各天的数值定义取决于 firstdayofweek 参数设置。
abbreviate可选参数,表示星期几是否简写,默认值为false
firstdayofweek使用方法请参照上文中weekday(date)的使用默认值为1
该函数返回星期中某一天的名称,如:
weekdayname("3",false,1)
weekdayname("3",false,2)
返回值?不难知道哈。如果是中文系统的话,分别应该是”星期二“,”星期三“
为什么呢?请结合weekday(date)的用法,应该不难找到答案的
第三部分:对时间操作的函数:
(1)dateadd(interval, number, date)
返回已添加指定时间间隔的日期
interval表示要添加的时间的间隔方式,其取值如下:
yyyy -年
q -季度
m -月
y -一年的日数
d -日
w -一周的日数
ww- 周
h -小时
n -分钟
s -秒
number是表示要添加的时间间隔的个数
date是任何合法的日期表达式,可以是正数(得到未来的日期)或负数(得到过去的期)。
例:DateAdd("m", 1, "2004-10-26"
表示距离2004-10-26一个月是什么日子,其值为2004-11-26
又如:DateAdd("ww", 1, "2004-10-26"
表示距离2004-10-26 “-1”个星期的日期,其值为2004-10-19
(2)datediff(interval, date1, date2 [,firstdayofweek[, firstweekofyear]])
返回两个时间的间隔(注意和dateadd区分)
interval表示两个时间的间隔方式(取值见DateAdd函数的相关部分)
date1,date2是时间1,时间2,计算方式是date2-date1
firstdayofweek指定一周的第一天是星期几(见weekday相关部分),可选参数
firstweekofyear指定一年的第一周是什么时候,默认为一月一日所在的星期是可选参数
例如:Datediff("ww", "2003-10-25", "2004-10-26"
表示2003-10-25和2004-10-26相隔多少周,其值为53
(3)DatePart(interval, date[, firstdayofweek[, firstweekofyear]])
返回给定日期的指定部分
interval表示要返回的时间间隔方式(见dateadd函数相关部分)
date任何合法的时间或日期表达式
firstdayofweek,firstweekofyear(见datediff相关部分)
例如:
datepart("yyyy","october 26,2004"
其值为2004,和year("october 26,2004"的值一样
(4)DateSerial(year, month, day)
对于指定的年、月、日,返回 Date 子类型的 Variant。
这个简单,不用说了。
(5)timeserial(hour,minute, second)
返回一个 Date 子类型的 Variant,含有指定时、分、秒的时间
和dateserial类似
(6)datevalue(date)
date为任何合法的时间表达式
该函数用于返回标准的日期格式,如
datevalue("october 26,2004"
其值为2004-10-26
第四部分:其他
(1)object.DateCreated
返回指定的文件或文件夹的创建时间。该函数为只读函数。
其中object 应为 File 或 Folder 对象的名称。
(2)object.DateLastAccessed
返回指定的文件或文件夹的上次访问日期和时间。该函数为只读函数。
其中object 应为 File 或 Folder 对象的名称。
(3)object.DateLastModified
返回指定的文件或文件夹的最后一次改动时间。该函数为只读函数。
其中object 应为 File 或 Folder 对象的名称
结合如上三个函数请参看如下示例:
Function FileAccessInfo(files)
Dim fs, f, s
Set fs = CreateObject("Scripting.FileSystemObject"
Set f = fs.GetFile(files)
s = UCase(files) & "<BR>"
s = s & "创建时间: " & f.DateCreated & "<BR>"
s = s & "上次访问时间: " & f.DateLastAccessed & vbCrLf
s = s & "上次修改时间: " & f.DateLastModified
FileAccessInfo = s
End Function
该函数将显示出files的建立时间,上次的访问时间,和最后一次修改的时间。