Ребят, нужна помощь. С js только начал знакомиться, поэтому возникают проблемы. Есть скрипт таймера и он вроде бы даже работает, но не так как хотелось бы
Есть переменная
date_to это то, до чего будет тикать таймер и переменная
date - текущая дата. И он тикает обновляясь каждую секунду с помощью
setTimeot() пока эти две даты не встретятся. Проблема вот в чём... Хотелось бы сделать так, чтобы не приходилось каждый раз в коде менять дату до которой он будет тикать, а чтобы при вызове функции таймер автоматический начинал с 01:00:00. Пробовал не указывать дату для переменной
date_to(то есть оставлять там текущую) и писал
date_to.setHours(1);, результат: при вызове функции таймер отображает 01:00:00 и стоит на этой цифре, то есть нет обратного отсчета. Интересно, что если изначально в переменной
date_to стоит дата хоть на 1 сек больше, чем в
date и прописано
date_to.setHours(1), то оно показывает 01:00:01, 01:00:00, 00:59:59 и так далее, то есть отсчет идёт нормально, а если в
date_to стоит текущая дата и я прибавляю час, то высвечивает 01:00:00 и замирает... Есть какие нибудь мысли?
Код:
$(document).ready(function(){
function timer(){
var date = new Date();
var date_to = new Date();
date_to.setHours(3);
var time = date_to - date;
var hour = parseInt(time/(60*60*1000));
if(hour < 10){
hour = "0" + hour;
}
var min = parseInt(time/(60*1000))%60;
if(min < 10){
min = "0" + min;
}
var sec = parseInt(time/(1000))%60;
if(sec < 10){
sec = "0" + sec;
}
var tiktak = hour + ":" + min + ":" + sec;
if(date_to > date){
$("#clock").html("<span>" + tiktak + "</span>");
setTimeout(timer,1000);
}
else{
$("#clock").html("<font color=green>Готово!</font>")
};
};
$(function(){
$("#stimer").click(function(){
timer();
});
});
});