如何增加小时,分钟和秒
How to add hours,minutes and seconds?
我有两个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所示。
相关文章:
- 每小时倒计时一次,但以30分钟为单位
- 如何在javascript中将秒转换为分钟和小时
- 如何将分钟格式化为小时和分钟,但仅显示小时(如果's>60分钟
- 引导时间选择器在增加或减少小时和分钟的同时获取 NaN
- 计算JavaScript中的时间差异(天+小时+分钟+秒)
- 根据小时和分钟更改 CSS
- 使用年、月、日期、小时、秒格式每分钟刷新一次图像
- 用javascript将时间格式化为小时和分钟
- jQuery倒计时隐藏天/小时/分钟(如果没有)
- 如何每10分钟运行一次函数,在10分钟标记上,每小时运行6次
- 将秒实时转换为小时和分钟
- 如何在nvd3.js图中将小时和分钟作为x轴
- 将秒转换为天,小时,分钟和秒
- 如何使用 矩.js 将分钟转换为小时
- 在 JavaScript 中,范围小时 30 分钟(或 20 分钟)
- Javascript:如何以毫秒为单位将时间显示为天:小时:分钟
- 如何用PHP格式化中文小时和分钟
- SSE (事件源) 在 1 小时 22 分钟后超时.有没有办法让它持久化
- 在 Google 图表 y 轴上将时间格式设置为小时:分钟
- 在 AmCharts 中将数据从秒更改为分钟/小时/天