Jquery两个字段的时差(以小时为单位)(AM/PM格式)



我的表单中有两个字段,用户可以在其中选择输入时间(start_time,end_time(,我想计算这两个时间字段之间的持续时间。

例如:开始时间=上午6:00,结束时间=下午3:00,持续时间=7

start_time和end_time都是AM/PM格式。

您可以使用此函数。使用您的时间格式。

$('.btn_duration').on("click", function(){
duration();
})
function duration() {
var _starttime = $('#start_time').val();
var _endtime = $('#end_time').val();
//divide AM/PM from time
var _split_starttime = _starttime.split(" ");
var _split_endtime = _endtime.split(" ");
//check if start time is bigger than end time
if (_split_starttime[1] == "PM") {
alert("start time can't be bigger than end time.");
return false;
}
else {
var _start_timenumber = _split_starttime[0].split(".");
var _end_timenumber = _split_endtime[0].split(".");
//start time hour & minute
var _start_hour = parseInt(_start_timenumber[0]); 
var _start_min = parseInt(_start_timenumber[1]); 
//end time hour & minute
var _end_hour = parseInt(_end_timenumber[0]); 
var _end_min = parseInt(_end_timenumber[1]); 
//get hour duration
var _hour_format = 0;
if (_split_endtime[1] == "PM") {
if(_end_hour == 12){
_end_hour = 0;
}
_hour_format = _end_hour + 12;
}
else{
_hour_format = _end_hour;
}
var _duration_hour = _hour_format - _start_hour;
//calculate minutes
var _remained_min = Math.abs(_start_min - _end_min);;
//final result
var _final_duration = _duration_hour + "Hour " + _remained_min + "Minutes";
$('#result').val(_final_duration);
}
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" id="start_time" value="6.10 AM">
<input type="text" id="end_time" value="2.45 PM">
<input type="text" id="result" value="">
<button class="btn_duration">Calculate</button>

最新更新