Dre*_*TeK 3 html javascript time jquery input
我想计算两次之间的小时数.
下面是我目前的位置,但此代码以两种方式失败.
1).我需要.Hours以十进制输出时间.
(例如,一个半小时应该输出1.5和15分钟应该是0.25).
2).计算当前不会将时间值视为time.
(例如23:00到2:00应该相等3而不是 -21当前).
HTML
<input class="Time1" value="10:00" />
<input class="Time2" value="12:00" />
<input class="Hours" value="0" />
Run Code Online (Sandbox Code Playgroud)
JQUERY
$(function () {
function calculate() {
var hours = parseInt($(".Time2").val().split(':')[0], 10) - parseInt($(".Time1").val().split(':')[0], 10);
$(".Hours").val(hours);
}
$(".Time1,.Time2").change(calculate);
calculate();
});
Run Code Online (Sandbox Code Playgroud)
简单的方法是,如果你得到一个负值,添加24小时,你应该得到你的结果.
var hours = parseInt($(".Time2").val().split(':')[0], 10) - parseInt($(".Time1").val().split(':')[0], 10);
// if negative result, add 24 hours
if(hours < 0) hours = 24 + hours;
Run Code Online (Sandbox Code Playgroud)
演示:http://jsfiddle.net/44NCk/1/
将分钟作为小数点进一步涉及更多,你可以在这个小提琴中看到:http://jsfiddle.net/44NCk/2/
function calculate() {
var time1 = $(".Time1").val().split(':'), time2 = $(".Time2").val().split(':');
var hours1 = parseInt(time1[0], 10),
hours2 = parseInt(time2[0], 10),
mins1 = parseInt(time1[1], 10),
mins2 = parseInt(time2[1], 10);
var hours = hours2 - hours1, mins = 0;
// get hours
if(hours < 0) hours = 24 + hours;
// get minutes
if(mins2 >= mins1) {
mins = mins2 - mins1;
}
else {
mins = (mins2 + 60) - mins1;
hours--;
}
// convert to fraction of 60
mins = mins / 60;
hours += mins;
hours = hours.toFixed(2);
$(".Hours").val(hours);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17966 次 |
| 最近记录: |