Как добавить часы к выбранному времени?
Я использую время выбора как:
<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="time" как 13:00, то следующий id="time1" должен содержать (+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 ответа
Решение
Попробуй это.
$('#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/
.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);
}