dateAdd秒没有AM / PM?

时间:2015-10-05 16:01:24

标签: datetime vbscript datetime-format dateadd

我试图从其他地方使用的日期减去一定的秒数。但是,我需要它是24小时格式。这是我的功能:

Function getDateTime(df) 'timediff
    getDateTime = DateAdd("S",0 - df,Now)
End Function

它必须采用10/5/2015 13:58:32而不是10/5/2015 1:58:32 PM

的格式

是否有一种简单的方法来转换它,还是我需要进行字符串评估和操作? (if hrs > 12 { etc... })

3 个答案:

答案 0 :(得分:1)

这是我的替换功能:

Function getDateTime(df) 'timediff in seconds
    getDateTime = FormatDateTime(DateAdd("S",0 - df,Now),vbGeneralDate)
    getDateTime = Year(getDateTime) & "-" & Month(getDateTime) & "-" & Day(getDateTime)_
    & " " & Hour(getDateTime) & ":" & Minute(getDateTime) & ":" & (Second(getDateTime))
End Function

感谢@Lankymart指出我忽略的简单事实。随意发布,我会接受你的回答。

答案 1 :(得分:1)

another question中解决此问题。

当您看到特定格式的运行时,VBScript日期/时间存储为整数,该格式只是运行时推断该日期/时间变量的默认字符串表示形式(通常使用计算机区域设置)

Function FormatDate(df)
  FormatDate = Right("00" & Day(df), 2) & _
    "/" & Right("00" & Month(df), 2) & "/" & Year(df) & _
    " " & Right("00" & Hour(df), 2) & ":" & _
    Right("00" & Minute(df), 2) & ":" & Right("00" & Second(df), 2)
End Function

当您有日期格式Left(MonthName(Month(df)), 3)(例如)时,您可以使用like 04/04/2015来避免日期格式问题(只要DBMS支持它)

答案 2 :(得分:0)

好吧,任何编程语言(或DBMS)的日期都是。它们在IDE,脚本工具中的显示方式或从DBMS查询时的方式无关紧要。它们实际上存储在同一个地方#34;

如果您希望它们以某种方式显示报告,UI等,则必须将它们转换为具有特定格式的字符串。同样,重申一下,日期只是存储在内存中的数值。

当你说"它需要的格式为10/5/2015 13:58:32而不是10/5/2015 1:58:32 PM",后一个值只是调试器如何显示它(最有可能使用默认日期格式的ToString()调用)。