Search code examples
jqueryjquery-uijquery-ui-timepicker

how to add hours to selected time?


I am using time picker like:

<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
}); 

If I select the id="time" as 1:00pm then the next id="time1" should contain(+4) i.e.5:00pm

so I tried this in following way but not succeeded.

 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;
 } 

does anyone know the solution?


Solution

  • Try this.

    $('#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);
    });
    

    Working demo: http://jsfiddle.net/codovations/g2VLQ/1/