在VBScript中从FormatDateTime中删除秒

时间:2019-06-25 18:26:01

标签: 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)

这将返回下午2:10:12,但不应显示秒。

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

这将返回14:10,但这是在军事时间。

我已经看到C#和VB.NET中的函数将直接以hh:mm am / pm返回时间,但是无法找到将在VBScript中实现的函数的文档。

1 个答案:

答案 0 :(得分:0)

您可以通过使用内置的时间函数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

提供的代码未经测试,现在就在我的iPad上编写了,因此无法对其进行测试。


有用链接