javascript - 如何从两个引导时间选择器字段中获取持续时间
问题描述
我正在使用Bootstrap 3制作表单,在其中添加了两个时间选择器。但我的问题是如何从两个输入字段中获取持续时间值。
注意:我得到的结果是second
我使用 parseInt() 来获取 int 值。我怎样才能让他们像 130 = 2:10 HR
<div class="form-group">
<label class="control-label " for="textarea">Task Time & Durations</label>
<div class="row">
<div class="input-group col-md-4 bootstrap-timepicker timepicker">
<input id="timepicker1" name="start-time" type="text" class="form-control input-small">
<span class="input-group-addon">
<i class="glyphicon glyphicon-time"></i>
</span>
</div>
<div class="input-group col-md-4 bootstrap-timepicker timepicker">
<input id="timepicker2" name="end-time" type="text" class="form-control input-small">
<span class="input-group-addon">
<i class="glyphicon glyphicon-time"></i>
</span>
</div>
<div class="input-group col-md-4">
<input id="duration" name="duration" type="text" class="form-control input-small" disabled>
<span class="input-group-addon">
<i class="glyphicon glyphicon-time"></i>
</span>
</div>
</div>
</div>
这是我的 JS 代码
$(document).ready(function(){
$('#timepicker1,#timepicker2').timepicker({
minuteStep: 1,
});
//-----------------------------------------------------------------
$("#timepicker2").change(function(){
//get value from parent form
var d3 = $("#timepicker1").val();
var d4 = $("#timepicker2").val();
// calculate number of minutes for first field
var d5 = d3.substring(0, 2);
var d6 = d3.substring(3, 5);
var d7 = ((parseInt(d5 )* 60) + (parseInt(d6) * 1));
//calculate number of minutes for second field
var d8 = d4.substring(0, 2);
var d9 = d4.substring(3, 5);
var d10 = ((parseInt(d8) * 60) + (parseInt(d9) * 1)) ;
//final calculation (number of minutes)
var d11= (d10 - d7) ;
diff = d11; // ms per day
//store the value to a field
$("#duration").val(diff);
});
//-----------------------------------------------------------------
});
解决方案
我解决了这个感谢您的帮助工作小提琴希望这对其他人有帮助
$(document).ready(function(){
$('#timepicker1,#timepicker2').timepicker({
minuteStep: 1,
});
//-----------------------------------------------------------------
$("#timepicker2").change(function(){
//get value from parent form
var d3 = $("#timepicker1").val();
var d4 = $("#timepicker2").val();
// calculate number of minutes for first field
var d5 = d3.substring(0, 2);
var d6 = d3.substring(3, 5);
var d7 = ((parseInt(d5 )* 60) + (parseInt(d6) * 1));
//calculate number of minutes for second field
var d8 = d4.substring(0, 2);
var d9 = d4.substring(3, 5);
var d10 = ((parseInt(d8) * 60) + (parseInt(d9) * 1)) ;
//final calculation (number of minutes)
var d11= (d10 - d7) ;
diff = d11; // ms per day
if (diff == null) { return ""; }
if (diff <= 0) { return ""; }
var hours = Math.floor(diff / 60);
var minutes = diff % 60;
var hour = (hours > 1) ? hours + " hrs " : hours + " hr ";
var min = (minutes > 0) ? minutes + " mins" : "";
var duration= hour + min;
//store the value to a field
$("#duration").val(duration);
});
});
推荐阅读
- haskell - 在 cygwin 中安装软件包 wreq 时出错
- timezone - 如何使用时区 ID 查找正确的 GMT 时间
- android - 新文件(路径,名称)与 file.mkDirs()
- reactjs - Redux 存储在组件中变空
- javascript - 如何启用 .click 事件,如果它是从一个函数调用的,如果页面直接加载它不应该被加载
- javascript - 在另一个模块中注入模块并使用注入模块的控制器
- django - Django:将 ListView 与 UpdateView 结合使用
- r - 使用 Shiny 添加/删除项目管理
- virtualbox - 虚拟化 Windows 10 上的 Virtualbox 仅显示 32 位模板?
- ruby-on-rails - Action Mailer 的问题