jQuery输入字段中总时间的总和

时间:2015-01-20 04:40:09

标签: jquery input time sum

我需要jQuery自动给我输入字段中的时间总和。我希望它在另一个输入字段中显示总计,其值设置为总时间。示例如下。

input 1: 18:30   //format mm:ss
input 2:  3:00 
input 3:  0:00
input 4:  0:30
------------------
Total:   22:00

2 个答案:

答案 0 :(得分:4)

像这样的东西可能会帮助你交配:)在你复制粘贴代码之前,试着去理解幕后发生的事情。

<强> HTML

<input value="1:45" size="5">Time 1
<input value="1:30" size="5">Time 2
<input value="1:32" size="5">Time 3
<input value="5:30" size="5">Time 4
<button id="addTimes">Add times</button>
<br>Result<span id="timeSum"></span>

<强>脚本

  Number.prototype.padDigit = function () {
        return (this < 10) ? '0' + this : this;
    }

 $("#addTimes").on('click', function () {
      var t1 = "00:00";
      var mins = 0;
      var hrs = 0;
        $('input').each(function () {
            t1 = t1.split(':');
            var t2 = $(this).val().split(':');
            mins = Number(t1[1]) + Number(t2[1]);
            minhrs = Math.floor(parseInt(mins / 60));
            hrs = Number(t1[0]) + Number(t2[0]) + minhrs;
            mins = mins % 60;
            t1 = hrs.padDigit() + ':' + mins.padDigit()

        });
        $('#timeSum').text(t1);
    });

Fiddle

<强> FYI

split()

ParseInt

答案 1 :(得分:0)

以下代码是关于实现相同目标的一种方式。但是,如果你想要更好的方法,我建议你使用Moments.js,它带有各种功能,可以在javascropt / jquery中处理日期时间

var score = $('.input').val();
var minutes  = 0;
var seconds = 0;
var tmpSec = 0;
$(score).each(function(index){
    var minSec = this;
    var timeParts = minSec.split(":");
    minutes = minutes + parseInt(timeParts[0]);
    seconds = seconds + parseInt(timeParts[1]);
});
if (seconds > 60){
    tmpSec = Math.round(seconds / 60);
    seconds = seconds % 60;
}

tmpMins = minutes + parseInt(tmpSec);
finalOutput = tmpMins + ":" + seconds;

为简单起见,我假设你的所有输入框,除了结果框有一个类&#34;输入&#34;。你可以相应地修改它。