用datediff求时间段

我想求一个时间段的秒数,改了很久,就是不成功,恳请各位大侠指点下,代码如下

Dim tz,sj,zero,jl

zero=HMIRuntime.Tags ("zero_tag").Read 
jl=HMIRuntime.Tags ("jl_tag").Read 

If zero=1 Then
HMIRuntime.Tags ("zero_tag").write 0
HMIRuntime.Tags ("qs_time").Write CStr(Now)
qs=CStr(Now)
End If

If jl=1 And zero=0 Then 
HMIRuntime.Tags ("tz_time").Write CStr(Now)
tz=CStr(Now)
HMIRuntime.tags("sj").write  CStr(DateDiff("s",qs,tz))
End If
我就求很短的一段时间,为什么所用时间那么大呀,我的输出格式都是字符串,附图,各位高手指点下吧

图片说明:

用datediff求时间段   

最佳答案

问题出在变量qs,当jl=1时,qs没有被赋值,DateDiff函数里的qs应该用读取变量qs_time的值来代替。

提问者对于答案的评价:
谢谢了大侠,我调试成功了,只是不明白我在前一个if 语句中不是对它赋值了呀,为什么在后一个if中没作用呀?

最佳答案作者回复:
因为实现这个过程你这段脚本会执行许多次,当你某一次满足第一个条件时,qs被赋值,但下一次再执行这段脚本qs的值不会被保持,当满足第二个条件时的那一次,第一个条件肯定不满足,所以qs不会被赋值,即使此时赋值也是不正确的时间,因为VBS脚本里没法定义静态变量,所以就是这个状况。

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc263118.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日 上午1:59
下一篇 2019年6月11日 上午1:59

相关推荐