【发布时间】:2021-06-02 08:22:36
【问题描述】:
我的表单中有两个字段,用户选择输入时间(开始时间、结束时间)我想计算这两个时间字段之间的持续时间。
例如:开始时间 = 上午 6:00,结束时间 = 下午 3:00,持续时间 = 7
start_time 和 end_time,都是 AM/PM 格式。
【问题讨论】:
标签: javascript jquery
我的表单中有两个字段,用户选择输入时间(开始时间、结束时间)我想计算这两个时间字段之间的持续时间。
例如:开始时间 = 上午 6:00,结束时间 = 下午 3:00,持续时间 = 7
start_time 和 end_time,都是 AM/PM 格式。
【问题讨论】:
标签: javascript jquery
您可以使用此功能。使用您的时间格式。
$('.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>
【讨论】: