我在计算时刻时遇到问题。js。问题是,当我以“ hh:mm:ss”格式添加或减去时间并且超过1小时时,效果很好,但是当我添加或减去例如00:33:33或少于一小时的时间时,计算错误。导致计算错误的示例
var nDemo = '01:00:00';
var nCalculo = '00:13:00';
var timess= nDemo.split(":");
var hh = timess= [0];
var min = timess= [1];
var ss = timess= [2];
finalr = moment.utc(nCalculo, 'hh:mm:ss').subtract(hhr, 'seconds').format('hh:mm:ss');
finalr1 = moment.utc(finalr, 'hh:mm:ss').subtract(minr, 'minutes').format('hh:mm:ss');
finalr2 = moment.utc(finalr1, 'hh:mm:ss').subtract(ssr, 'hour').format('hh:mm:ss');
alert (finalr2);
我得到的结果是:12:47:00,应该是00:47:00。我想念什么?
如果我用少于一个小时的金额进行相同的计算,那也会出错。
var nDemo = '00:30:00';
var nCalculo = '00:13:00';
var timess= nDemo.split(":");
var hh = timess= [0];
var min = timess= [1];
var ss = timess= [2];
finalr = moment.utc(nCalculo, 'hh:mm:ss').add(hhr, 'hour').format('hh:mm:ss');
finalr1 = moment.utc(finalr, 'hh:mm:ss').add(minr, 'minutes').format('hh:mm:ss');
finalr2 = moment.utc(finalr1, 'hh:mm:ss').add(ssr, 'hour').format('hh:mm:ss');
alert (finalr2);
我得到的结果是:12:43:00,应该是00:43:00。我想念什么?
您在一小时以上进行的任何其他类型的计算都是正确的,当您进行少于一小时的计算时会出现错误。有任何想法吗?谢谢
问题是因为这里hh
定义的是01-12的12小时制
您应该选择使用H
或HH
改为0-23小时;
finalr = moment.utc(nCalculo, 'H:mm:ss').add(hhr, 'hour').format('H:mm:ss');
finalr1 = moment.utc(finalr, 'H:mm:ss').add(minr, 'minutes').format('H:mm:ss');
finalr2 = moment.utc(finalr1, 'H:mm:ss').add(ssr, 'hour').format('H:mm:ss');
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句