做结账的时候遇到一个这样的问题,就是计算出两个时间的差(如下图所示),一开始想到的思路就是获取这两个时间,然后拿结束时间直接减去开始时间就可以得到时间差了,做这个的是之后
发现并不是这样的,如果你是获取两个时间直接相减是不可以的。这个做法也做计算不了。
计算的正确的方法如下:
首先声命一个变量接收获取到的时间,两个时间都是如此这样做。还一个东西要提一下的,就是时间类型问题,好比如这两种类型 var t1="2018/08/07 21:13:00"&&var t2="2018-08-07 21:13:00";不知道你们是什么情况,反正因为我的后台返回的数据类型就是第二种,所以我要这个类型问题,我一开做的时候就是因为这个类型问题卡了我很久,开始的时候做到只能计算到小时的差而小时和分钟确计算不了都是为零。
首先获取的时间的横杆用raplace转换成斜杆再转换成当前时间格式,
如下图所示是转换成当前时间的格式
既然是时间差的话,就肯定要有两个数据,不然怎么两相比较一般情况下两个数据中都会有一个当前时间的数据的,但是我这个比较特殊点。两时间相减计算用getTime()方法返回 1970 年 1 月 1 日至今的毫秒数的差值。
根据查询出的毫秒值,计算相差的天数,一天有24小时,一小时3600秒,再乘余1000就可得到一天的毫秒数了,拿相差总的毫秒数除余计算得到一天的毫秒数,就得到相差的天数了,
在计算天数后剩余的毫秒数,剩余的毫秒除余一个小时的毫秒数就可以得到相差的小时数了。分钟也是如同上的。最后把各个的到结果拼接起来就ok.
运行效果如下图所示