如何增加小时,分钟和秒

How to add hours,minutes and seconds?

本文关键字:分钟 小时 何增加 增加      更新时间:2023-09-26

我有两个in_time和out_time。我想用javascript添加这两次。我该怎么做呢?in_time和out_time的值来自文本框。我的html代码是

<div>   
<b>PunchIn</b>
    <input type="text" id="intime" class="time" placeholder="09:00:00" />
    <p class="error">PunchTime is not valid</p>
</div>
<br/>
<div>   
    <b>OutTime</b>
    <input type="text" id="brktime" class="time" placeholder="06:00:00" />
    <p class="error1">OutTime is not valid</p>
</div>
你可以看到Demo
中的代码

将时间转换为秒,添加它们,并格式化结果:

function toSeconds(s) {
  var p = s.split(':');
  return parseInt(p[0], 10) * 3600 + parseInt(p[1], 10) * 60 + parseInt(p[2], 10);
}
function fill(s, digits) {
  s = s.toString();
  while (s.length < digits) s = '0' + s;
  return s;
}
var sec = toSeconds(intime) + toSeconds(out);
var result =
  fill(Math.floor(sec / 3600), 2) + ':' +
  fill(Math.floor(sec / 60) % 60, 2) + ':' +
  fill(sec % 60, 2);

演示:http://jsfiddle.net/Guffa/JLh6W/

这是javascript,第二次计算也包括

试试这个,

var a = "17.30.15hrs"
var b = "1.30.20hrs"
alert(addtime(a, b));
var a = "23.00.25hrs"
var b = "1.30.60hrs"
alert(addtime(a, b));
function addtime(start_time, end_time) {
    var startArr = start_time.replace('hrs', '', start_time).split('.');
    var endArr = end_time.replace('hrs', '', end_time).split('.');
    var d = new Date();
    startArr[0] = (startArr[0]) ? parseInt(startArr[0], 10) : 0;
    startArr[1] = (startArr[1]) ? parseInt(startArr[1], 10) : 0;
    startArr[2] = (startArr[2]) ? parseInt(startArr[2], 10) : 0;
    endArr[0] = (endArr[0]) ? parseInt(endArr[0], 10) : 0;
    endArr[1] = (endArr[1]) ? parseInt(endArr[1], 10) : 0;
    endArr[2] = (endArr[2]) ? parseInt(endArr[2], 10) : 0;
    d.setHours(startArr[0] + endArr[0]);
    d.setMinutes(startArr[1] + endArr[1]);
    d.setSeconds(startArr[2] + endArr[2]);
    var hours = d.getHours();
    var minutes = d.getMinutes();
    var seconds = d.getSeconds();
    return hours + '.' + minutes + '.' + seconds + 'hrs';
}

演示:http://jsfiddle.net/AXVPf/7/

更新与第二次计算

https://github.com/timrwood/moment minutes库涵盖了您需要的大部分内容。也可以查看Google Closure Library日期实现。http://closure-library.googlecode.com/svn/docs/namespace_goog_date.html

您可以使用下面的函数将您的时间字符串转换为数字,然后您可以将它们相加

function getTimeAsSeconds(time){
    var timeArray = time.split(':');
    return Number(timeArray [0]) * 3600 + Number(timeArray [1]) * 60 + Number(timeArray[2]);
}

类似:

var timeInSeconds = getTimeAsSeconds(document.getElementById('intime').value) + getTimeAsSeconds(document.getElementById('brktime').value);

有很多图书馆(没有做谷歌搜索,但@alex23有一个)。然而,过程通常是相同的。将字符串转换为最小公分母。在这个例子中是秒。一旦你有了秒,把两者加在一起,然后再转换回小时分秒。这些转换是简单的乘法和运算,如@codebox所示。