QML中如何计算时间差:
首先需要确定开始时间和结束时间,我们先用当前时间作为开始时间,然后在定时器实时更新结束时间,这样时间差就是动态变化的。
我们以一个时间点为开始时间:startTimer=Qt.formatDateTime(new Date(), "hh:mm:ss"),然后开始定时器。定时器开始后我们需要将得到的时间转化成秒数,因为 此时startTimer的格式应该是00:00:00格式的字符串,是不能直接相减的。
接下来定义endTimer= Qt.formatDateTime(new Date(), "hh:mm:ss")
下面的代码非常关键:
var currentDate = dateTime1.split(":")
var dateTime2 = winLayout.startTime.split(":")
if(currentDate.length===3&&dateTime2.length === 3){
sec = ((parseInt(currentDate[0]) - parseInt(dateTime2[0]))*3600)+((parseInt(currentDate[1]) - parseInt(dateTime2[1]))*60)+parseInt(currentDate[2]) - parseInt(dateTime2[2])
hh = Math.floor(sec/3600)
mm = Math.floor((sec%3600)/60)
ss = sec%60
}
先将开始和结束的时间的时分秒分别相减,得到总秒数然后再计算当前秒数对应的小时和分钟秒数。这一步时间差已经计算出来了,但是时间的格式是0:0:0这个格式其实不是很友好所以要把当前的格式转换成00:00:00这样的格式
最后:
hh.toString().padStart(2,"0")+":"+mm.toString().padStart(2,"0")+":"+ss.toString().padStart(2,"0")
大功告成!当然如果你有更好的方法也请留言,一起进步避免误导别人 0.0