从 VBScript 中的 FormatDateTime 中删除秒数

Removing Seconds From FormatDateTime in VBScript

如何从 vbscript 中的日期提取 hh:mm am/pm 中的时间?

例如,对于日期“06/25/19 02:10:12 PM”,我只想显示“2:10 PM”

date = CDate("06/25/19 02:10:12 PM")
FormatDateTime(date, vbLongTime)

这将 return 2:10:12 PM 但不应显示秒数。

date = CDate("06/25/19 02:10:12 PM")
FormatDateTime(date, vbShortTime)

这将 return 14:10 但这是军用时间。

我见过 C# 和 VB.NET 中的函数,它们将直接 return hh:mm am/pm 中的时间,但无法找到有关函数的文档所以在 VBScript 中。

您可以通过使用 built-in 时间函数 Hour()Minute().

构建您自己的自定义格式化函数来实现此目的
Function FormatTime(dateIn, asTwelveHourFormat)
  Dim result, h, m, t
  If IsDate(dateIn) Then
    If Len(asTwelveHourFormat & "") < 1 Then asTwelveHourFormat = False
    h = Hour(dateIn)
    m = Minute(dateIn)
    t = ""
    If asTwelveHourFormat Then
      t = " "
      If h >= 12 Then
        t = t & "PM"
        If h > 12 Then h = h Mod 12 
      Else 
        t = t & "AM"
      End If
    End If
    h = Right("00" & h, 2)
    m = Right("00" & m, 2)
    result = h & ":" & m & t
  Else
    result = "NA"
  End If
  FormatTime = result
End Function

提供了代码 un-tested,现在刚写在我的 iPad 上,所以无法测试它。


有用的链接

  • Format current date and time in VBScript