如何将一个输入到另一个输入的时间延迟一小时?
How can I set the time from one input to another by one hour later?
我有一个表格,当我选择开始时间时,我想将结束时间设置为一小时后。
我试过这样解决的:
$('#timepicker2').val($('#timepicker1').val());
但什么也没发生:
时间格式为"HH:mm"
<div class="form-group">
<label for="exampleInputEmail1"> <?php echo lang('date'); ?></label>
<input type="text" class="form-control default-date-picker" readonly="" name="date"
id="exampleInputEmail1" value='' placeholder="">
</div>
<div class="form-group col-md-12">
<label for="timepicker1"> <?php echo lang('start_time'); ?></label>
<div class="col-md-4">
<div class="input-group bootstrap-timepicker timepicker">
<input id="timepicker1" type="text" class="form-control input-small" name="s_time">
<span class="btn btn-default input-group-addon"><i class="glyphicon glyphicon-time"></i></span>
</div>
</div>
</div>
<div class="form-group col-md-12">
<label for="timepicker2"> <?php echo lang('end_time'); ?></label>
<div class="col-md-4">
<div class="input-group bootstrap-timepicker timepicker">
<input id="timepicker2" type="text" class="form-control input-small" name="e_time">
<span class="btn btn-default input-group-addon"><i class="glyphicon glyphicon-time"></i></span>
</div>
</div>
</div>
试试下面的代码,
var firstDate = $("#timepicker1").val();
var hour = oldDate.getHours();
var newDate = firstDate.setHours(hour + 1);
$("#timepicker2").val(newDate);
希望这会有所帮助。
这是一个 Plunker example 你正在尝试做的事情。
var time1 = document.querySelector('#time1'),
time2 = document.querySelector('#time2');
time1.addEventListener('change', function(e){
time2.value = parseInt(time1.value) + 1;
});
根据新问题更新
var time1 = document.querySelector('#time1'),
time2 = document.querySelector('#time2');
time1.value = '10:00';
time1.addEventListener('change', function(e){
var t1 = time1.value.split(':').map(Number);
if(t1[1] < 10) t1[1] = '0' + t1[1];
t1[0] = (t1[0] + 1)%13;
if(t1[0] === 0) t1[0] = 1;
time2.value = t1.join(':');
});
这只是一个快速的 hacky 解决方案,只是让您了解您可以做什么。显然没有验证。
您可能应该使用日期对象 new Date()
它会接受日期字符串作为第一个参数并将其解析为日期。给你的约会增加一个小时
var d = new Date();
d.setHours( d.getHours() + 1);
我有一个表格,当我选择开始时间时,我想将结束时间设置为一小时后。
我试过这样解决的:
$('#timepicker2').val($('#timepicker1').val());
但什么也没发生:
时间格式为"HH:mm"
<div class="form-group">
<label for="exampleInputEmail1"> <?php echo lang('date'); ?></label>
<input type="text" class="form-control default-date-picker" readonly="" name="date"
id="exampleInputEmail1" value='' placeholder="">
</div>
<div class="form-group col-md-12">
<label for="timepicker1"> <?php echo lang('start_time'); ?></label>
<div class="col-md-4">
<div class="input-group bootstrap-timepicker timepicker">
<input id="timepicker1" type="text" class="form-control input-small" name="s_time">
<span class="btn btn-default input-group-addon"><i class="glyphicon glyphicon-time"></i></span>
</div>
</div>
</div>
<div class="form-group col-md-12">
<label for="timepicker2"> <?php echo lang('end_time'); ?></label>
<div class="col-md-4">
<div class="input-group bootstrap-timepicker timepicker">
<input id="timepicker2" type="text" class="form-control input-small" name="e_time">
<span class="btn btn-default input-group-addon"><i class="glyphicon glyphicon-time"></i></span>
</div>
</div>
</div>
试试下面的代码,
var firstDate = $("#timepicker1").val();
var hour = oldDate.getHours();
var newDate = firstDate.setHours(hour + 1);
$("#timepicker2").val(newDate);
希望这会有所帮助。
这是一个 Plunker example 你正在尝试做的事情。
var time1 = document.querySelector('#time1'),
time2 = document.querySelector('#time2');
time1.addEventListener('change', function(e){
time2.value = parseInt(time1.value) + 1;
});
根据新问题更新
var time1 = document.querySelector('#time1'),
time2 = document.querySelector('#time2');
time1.value = '10:00';
time1.addEventListener('change', function(e){
var t1 = time1.value.split(':').map(Number);
if(t1[1] < 10) t1[1] = '0' + t1[1];
t1[0] = (t1[0] + 1)%13;
if(t1[0] === 0) t1[0] = 1;
time2.value = t1.join(':');
});
这只是一个快速的 hacky 解决方案,只是让您了解您可以做什么。显然没有验证。
您可能应该使用日期对象 new Date()
它会接受日期字符串作为第一个参数并将其解析为日期。给你的约会增加一个小时
var d = new Date();
d.setHours( d.getHours() + 1);