Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Date 如何通过VBscript计算两个日期时间之间的持续时间_Date_Vbscript - Fatal编程技术网

Date 如何通过VBscript计算两个日期时间之间的持续时间

Date 如何通过VBscript计算两个日期时间之间的持续时间,date,vbscript,Date,Vbscript,如何通过VBscript计算两个日期时间之间的持续时间 日期1=2021-01-22 11:43:38.000 日期2=2021-01-22 14:32:38.000 结果应该是HH:MM:SS最后我回答了我的问题,感觉很好 Date1 = alA_Filling(0) Date2 = alA_Filling(1) secValue = DateDiff("s",Date1,Date2) ts = TimeS

如何通过VBscript计算两个日期时间之间的持续时间

日期1=2021-01-22 11:43:38.000 日期2=2021-01-22 14:32:38.000


结果应该是HH:MM:SS

最后我回答了我的问题,感觉很好

        Date1 = alA_Filling(0)
        Date2 = alA_Filling(1)
        secValue = DateDiff("s",Date1,Date2)  
        ts = TimeSerial(0, 0, secValue) 
        Duration = FormatDateTime(ts, vbLongTime)
但是我得到了像凌晨2:49:00这样的输出,为什么要在上面加上AM,可能是这个


如何删除该AM

TimeSerial和FormatDateTime返回的日期或时间将考虑计算机的区域设置。在我的欧洲计算机上没有显示AM分机,因为我们使用24小时时间格式

TimeSerial的另一个问题是,一旦超过32767秒,它就会溢出

另一种方法是分别计算小时、分钟和秒的值。一个可能的解决办法是:

secValue = DateDiff("s",Date1,Date2)
hours = secValue \ 3600
hh = hours
if hours < 10 then
    hh = Right("0" & hours, 2)
end if
mm = Right("0" & (secValue - hours * 3600) \ 60, 2) 
ss = Right("0" & secValue mod 60, 2)
diff = hh & ":" & mm & ":" & ss
wscript.echo diff
secValue=DateDiff(“s”,Date1,Date2)
小时数=秒值\3600
hh=小时
如果小时数小于10,则
hh=右侧(“0”小时和2小时)
如果结束
mm=右(“0”和(secValue-hours*3600)\60,2)
ss=右侧(“0”和秒值mod 60,2)
diff=hh&“:”&mm&“:”&ss
wscript.echo差异

使用DateDiff和TimeSerial获得了输出,但也将AM添加到了输出中。如何删除AM?我正在使用vbscript,但工作非常完美。。这里的问题是持续时间。。。如果持续时间小于1小时,则显示输出12:32:00(实际持续时间32分钟)。VB.NET标记说明明确说明它不用于VBScript问题。不要垃圾邮件标签,因为它浪费了人们的时间。