如何在之前“更改”的结束时间增加2小时开始,使用jQuery时间选择器

How to add 2 hours for end time on previously "changed" start, using jQuery timepicker?

本文关键字:时间 2小时 增加 开始 选择器 jQuery 使用 结束 更改      更新时间:2023-09-26

我使用的jQuery时间选择器:http://timepicker.co/

我想要达到的目标:

  • 两个时间输入框:开始时间和结束时间。
  • 开始时间:8:00am
  • 结束时间:当开始时间更改为8:00am时,结束时间应自动设置为10:00am。
$('#t1').timepicker({
    timeFormat : 'hh:mm a',
    interval : 30,
    minTime : '8',
    maxTime : '11:00 PM',
    startTime : '08:00 AM',
    dynamic : false,
    dropdown : true,
    scrollbar : true
});
$('#t1')
.timepicker('option', 'change', function(time) {
    $('#t2').timepicker('option', 'minTime', time);
    $('#t2').timepicker('setTime', time);
});
$('#t2').timepicker({
    timeFormat : 'hh:mm a',
    interval : 30,
    maxTime : '11:00 PM',
    startTime : '08:00 AM',
    dynamic : false,
    dropdown : true,
    scrollbar : true
});

现在一切都很好,除了不确定的方式添加2小时。

使用传递给#t1更改处理程序的Date对象(time);在此时间上增加2小时(以毫秒为单位,即2 * 60 * 60 * 1000),并创建一个新的Date()对象。根据设置#t2

$('#t1')
  .timepicker('option', 'change', function(time) {
    var later = new Date(time.getTime() + (2 * 60 * 60 * 1000));
    $('#t2').timepicker('option', 'minTime', time);
    $('#t2').timepicker('setTime', later);
  });

$('#t1').timepicker({
  timeFormat: 'hh:mm a',
  interval: 30,
  minTime: '8',
  maxTime: '11:00 PM',
  startTime: '08:00 AM',
  dynamic: false,
  dropdown: true,
  scrollbar: true
});
$('#t1')
  .timepicker('option', 'change', function(time) {
    var later = new Date(time.getTime() + (2 * 60 * 60 * 1000));
    $('#t2').timepicker('option', 'minTime', time);
    $('#t2').timepicker('setTime', later);
  });
$('#t2').timepicker({
  timeFormat: 'hh:mm a',
  interval: 30,
  maxTime: '11:00 PM',
  startTime: '08:00 AM',
  dynamic: false,
  dropdown: true,
  scrollbar: true
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/timepicker/1.3.5/jquery.timepicker.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/timepicker/1.3.5/jquery.timepicker.min.css" rel="stylesheet" />
<input type="text" id="t1" />
<input type="text" id="t2" />

我自己找到了答案。

// TimePicker
                    $('#t1').timepicker({
                        timeFormat : 'hh:mm a',
                        interval : 30,
                        minTime : '8',
                        maxTime : '11:00 PM',
                        startTime : '08:00 AM',
                        dynamic : false,
                        dropdown : true,
                        scrollbar : true
                    });
                    $('#t1')
                    .timepicker('option', 'change', function(time) {
                        var startHour = parseInt($('#t1').val().substring(0, 2));
                        var startMinutes = $('#t1').val().substring(2, 8);
                        var endMinTime = (startHour + 2).toString().concat(startMinutes);
                        $('#t2').timepicker('option', 'minTime', endMinTime);
                        $('#t2').timepicker('setTime', endMinTime);
                    });
                    $('#t2').timepicker({
                        timeFormat : 'hh:mm a',
                        interval : 30,
                        maxTime : '11:00 PM',
                        startTime : '08:00 AM',
                        dynamic : false,
                        dropdown : true,
                        scrollbar : true
                    });