javascript - 如何将两个输入时间值相加并显示在另一个输入框中?

标签 javascript php time

我从用户那里得到两个持续时间,当前时间前一个时间。现在,我想计算第三个文本框上显示的总时间。

<p><span>Current Duration</span><input id="txt1" onblur="sum();" type="text" autocomplete="off" name="current_duration" value="" /></p>
<p><span>Previous Duration</span><input id="txt2" onblur="sum();" type="text" autocomplete="off" name="previous_duration" value="" /></p>
<p><span>Total Duration</span><input id="txt3" type="text" readonly autocomplete="off" name="total_duration" value="" /></p>
<script>

    function sum() {
        var txtFirstNumberValue = document.getElementById('txt1').value;
        var txtSecondNumberValue = document.getElementById('txt2').value;

        var result = parseInt(txtFirstNumberValue) + parseInt(txtSecondNumberValue);
        if (!isNaN(result)) {
            document.getElementById('txt3').value = result;

        }
    }
</script>

我怎样才能实现同样的功能?你们能帮我吗?

最佳答案

假设时间和分钟之间的分隔符是“.”,这样就可以了。如果我需要另一个分隔符,只需替换 toTime() 和 fromTime() 中的字符

<p><span>Current Duration</span><input id="txt1" onblur="sum();" type="text" autocomplete="off" name="current_duration" value="" /></p>
<p><span>Previous Duration</span><input id="txt2" onblur="sum();" type="text" autocomplete="off" name="previous_duration" value="" /></p>
<p><span>Total Duration</span><input id="txt3" type="text" readonly autocomplete="off" name="total_duration" value="" /></p>

<script>
function sum() {
    var txtFirstNumberValue = document.getElementById('txt1').value;
    var txtSecondNumberValue = document.getElementById('txt2').value;

    var result = fromTime(txtFirstNumberValue) + fromTime(txtSecondNumberValue);

    if (!isNaN(result)) {
        document.getElementById('txt3').value = toTime(result);
    }
}

function fromTime(time) {
    var timeArray = time.split('.');
    var hours = parseInt(timeArray[0]);
    var minutes = parseInt(timeArray[1]);

    return (hours * 60) + minutes;
}

function toTime(number) {
    var hours = Math.floor(number / 60);
    var minutes = number % 60;

    return hours + "." + (minutes <= 9 ? "0" : "") + minutes;
}
</script>

JsFiddle

关于javascript - 如何将两个输入时间值相加并显示在另一个输入框中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22346267/

相关文章:

javascript - 使用 lodash 动态计算嵌套集合的平均值

php - 通过 PHP 调用 iconv 在 Apache 和命令行中产生不同的结果

javascript - 根据选定的小时和分钟从表格中获取下一个最接近的时间

php - 搜索数据库中的冒犯性词语

javascript - 将文件内容存储在表中(html table tr td) jquery

c++ - MPI 使用更多的 CPU 花费更多的时间

c# - 时间格式

javascript - 如果您要查找的元素不存在,如何不破坏 Cypress 测试

javascript - 如何逐渐拖入正方形

javascript - 递归函数在第一个循环后停止