如何在选定时间添加小时数?

时间:2014-04-23 14:32:33

标签: jquery jquery-ui jquery-ui-timepicker

我正在使用时间选择器:

<input type="text" id="time" name="startTime" value="" onblur="changeTime()"> 
<input type="text" id="time1" name="endTime" value="">

$('#time').timepicker({
   'minTime': '9:00am',
   'maxTime': '8:00pm',
  'showDuration': true,
  'step': 15
}); 

如果我选择id =&#34;时间&#34;下午1点然后下一个id =&#34; time1&#34;应该包含(+4),即下午5:00

所以我按照以下方式尝试了这个但没有成功。

 function changetime(){
     var endTime= document.getElementById('time').value;
     var temp=Math.abs(endTime.getTime());
     var total=Math.ceil(temp+(4));
     document.getElementById('time1').value=total;
 } 

有人知道解决方案吗?

2 个答案:

答案 0 :(得分:1)

.getTime()以毫秒为单位返回一个数字,而不是小时数。

尝试使用.getHours().setHours()代替:

 function changetime(){
     var endTime = document.getElementById('time').value;
     var temp = endTime.getHours();
     var total = temp+4;
     document.getElementById('time1').value = entTime.setHours(total);
 } 

答案 1 :(得分:1)

试试这个。

$('#time').timepicker({
    'minTime': '9:00am',
        'maxTime': '8:00pm',
        'showDuration': true,
        'step': 15
});
$('#time').on('changeTime', function () {
    var temp = $(this).val();
    var hoursMinutes = temp.substring(0, temp.length - 2).split(":");
    var meridian = temp.substring(temp.length - 2).toLowerCase();
    var newMeridian = meridian;
    var newHours = +hoursMinutes[0] + 4;
    var newMinutes = hoursMinutes[1];
    if (newHours >= 12) {
        newMeridian = (meridian ==="pm")? "am" : "pm";
    }
    if (newHours > 12) {
        newHours -= 12;
    }
    var newTime = newHours + ":" + newMinutes + newMeridian;
    $('#time1').val(newTime);
});

工作演示:http://jsfiddle.net/codovations/g2VLQ/1/