ZetCode

VBScript 日期/时间函数

最后修改于 2025 年 4 月 4 日

VBScript 提供了一套全面的日期和时间处理函数。这些函数允许您检索、操作和格式化日期/时间值。理解这些函数对于脚本中的日志记录、调度和基于时间的计算等任务至关重要。

VBScript 日期/时间函数概述

VBScript 包含多个用于日期和时间操作的内置函数。主要函数有 NowDateTimeDateAddDateDiffDatePartFormatDateTime。这些函数有助于检索当前日期/时间、执行计算和格式化输出。

VBScript 中的日期值存储为浮点数,其中整数部分代表日期,小数部分代表时间。这种数字表示形式便于进行日期算术和比较。

获取当前日期和时间

NowDateTime 函数是最基本的日期/时间函数。Now 同时返回日期和时间,而 DateTime 则分别仅返回日期或时间部分。

current_datetime.vbs
Dim currentDateTime, currentDate, currentTime
currentDateTime = Now()
currentDate = Date()
currentTime = Time()

WScript.Echo "Current Date and Time: " & currentDateTime
WScript.Echo "Current Date: " & currentDate
WScript.Echo "Current Time: " & currentTime

此示例演示了如何检索当前系统日期和时间。Now 函数同时提供这两个部分,而 DateTime 则将它们分开。这些函数不需要任何参数。

使用 DateAdd 进行日期算术

DateAdd 函数允许您通过添加或减去时间间隔来进行日期算术。它需要三个参数:间隔类型、间隔数量和原始日期。

date_arithmetic.vbs
Dim today, nextWeek, nextMonth, nextYear, yesterday
today = Date()
nextWeek = DateAdd("d", 7, today)       ' Add 7 days
nextMonth = DateAdd("m", 1, today)      ' Add 1 month
nextYear = DateAdd("yyyy", 1, today)    ' Add 1 year
yesterday = DateAdd("d", -1, today)     ' Subtract 1 day

WScript.Echo "Today: " & today
WScript.Echo "Next Week: " & nextWeek
WScript.Echo "Next Month: " & nextMonth
WScript.Echo "Next Year: " & nextYear
WScript.Echo "Yesterday: " & yesterday

此示例展示了使用 DateAdd 进行各种日期计算。第一个参数指定间隔类型(“d”表示天,“m”表示月等)。负数表示减去时间。这对于计算截止日期或到期日期非常有用。

使用 DateDiff 计算日期差

DateDiff 函数以指定的单位计算两个日期之间的差值。它需要三个参数:间隔类型、date1 和 date2。结果是两个日期之间的间隔数。

date_difference.vbs
Dim startDate, endDate, daysDiff, monthsDiff, yearsDiff
startDate = #1/15/2025#
endDate = #4/4/2025#
daysDiff = DateDiff("d", startDate, endDate)
monthsDiff = DateDiff("m", startDate, endDate)
yearsDiff = DateDiff("yyyy", startDate, endDate)

WScript.Echo "Days between dates: " & daysDiff
WScript.Echo "Months between dates: " & monthsDiff
WScript.Echo "Years between dates: " & yearsDiff

此示例以天、月和年为单位计算两个日期之间的差值。DateDiff 对于计算年龄、持续时间或事件剩余时间非常有用。请注意,月和年的差值是整数值。

使用 DatePart 提取日期部分

DatePart 函数从日期中提取特定组件,例如年、月、日或星期几。它需要两个参数:要提取的部分和日期值。

date_parts.vbs
Dim currentDate, year, month, day, weekday
currentDate = Date()
year = DatePart("yyyy", currentDate)
month = DatePart("m", currentDate)
day = DatePart("d", currentDate)
weekday = DatePart("w", currentDate)

WScript.Echo "Current Date: " & currentDate
WScript.Echo "Year: " & year
WScript.Echo "Month: " & month
WScript.Echo "Day: " & day
WScript.Echo "Weekday: " & weekday & " (1=Sunday, 7=Saturday)"

此示例演示了如何从日期中提取各种组件。星期几返回一个从 1(星期日)到 7(星期六)的数字。当您需要根据日期组件处理日期时,此函数非常有用。

使用 FormatDateTime 格式化日期

FormatDateTime 函数根据指定的格式选项格式化日期/时间值。它需要两个参数:日期和格式常量(0-4)。

date_formatting.vbs
Dim currentDateTime, longDate, shortDate, longTime, shortTime
currentDateTime = Now()
longDate = FormatDateTime(currentDateTime, 1)    ' vbLongDate
shortDate = FormatDateTime(currentDateTime, 2)   ' vbShortDate
longTime = FormatDateTime(currentDateTime, 3)    ' vbLongTime
shortTime = FormatDateTime(currentDateTime, 4)   ' vbShortTime

WScript.Echo "Original: " & currentDateTime
WScript.Echo "Long Date: " & longDate
WScript.Echo "Short Date: " & shortDate
WScript.Echo "Long Time: " & longTime
WScript.Echo "Short Time: " & shortTime

此示例展示了不同的日期/时间格式选项。格式常量决定了输出样式。这对于根据区域设置在用户界面或报告中显示日期特别有用。

来源

VBScript 日期/时间函数文档

在本文中,我们探讨了 VBScript 中必不可少的日期/时间函数,涵盖了日期/时间值的检索、操作和格式化。从 NowDate 等基本函数到 DateAddDateDiff 等更高级的操作,这些工具对于任何处理时间数据的 VBScript 程序员都至关重要。

作者

我叫 Jan Bodnar,是一名充满激情的程序员,拥有多年的编程经验。我自 2007 年以来一直撰写编程文章。到目前为止,我已撰写了 1400 多篇文章和 8 本电子书。我在教学编程方面有八年以上的经验。

列出所有 VBScript 教程