使用javascript和时刻js

时间:2018-02-27 11:15:19

标签: javascript momentjs

我在计算时间时遇到问题。 JS。问题是,当我以“hh:mm:ss”格式添加或减去时间并且它超过1小时它表现良好,但是当我添加或减去时间时,例如00:33:33或不到1小时计算错了。 示例计算错误

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。我错过了什么?

您在一小时以上进行的任何其他类型的计算都是正确的,当您使用不到一小时进行计算时会出现错误。有任何想法吗?谢谢

2 个答案:

答案 0 :(得分:1)

问题是因为hh是从here定义的01-12的12小时时钟

您应该选择使用HHH而不是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');

答案 1 :(得分:0)

我同意IsThisJavascript:

var m1 = moment.utc('01:00:00', 'HH:mm:ss')
var m2 = moment.utc('00:13:00', 'HH:mm:ss')
m1.subtract(m2.get('hour'), 'hour').subtract(m2.get('minute'), 'minute').subtract(m2.get('second'), 'second').format('HH:mm:ss')

但是,要注意,时刻与日期和时间一起工作。例如:23:59:59加1小时你想要什么?如果你得到24:59:59?还是00:59:59?

这样你可能会得到00:59:59,因为那将是另一天。

如果您希望小时为"连续",那么我建议您手动计算(将所有转换为秒,求和或减去,它们转换回小时:min:sec格式)。

相关问题