26.09.2010, 10:06
|
Новичок на форуме
|
|
Регистрация: 26.09.2010
Сообщений: 2
|
|
Вас всех тут на говнокод можно отправить смело. Если таймер, так и работать надо со временем!
var timer = new Object();
timer.get = function (year,month,day,hour,minute,second,msecond){
var finish_time = new Date(year,month-1,day,hour,minute,second,msecond);
var start_time = new Date();
var diff = Math.round((finish_time.getTime() - start_time.getTime())/1000);
timer.seconds = diff % 60;
timer.minutes = Math.floor((diff/60) % 60);
timer.hours = Math.floor((diff/3600) % 24);
timer.days = Math.floor(diff/3600/24);
console.log('Дней: '+timer.days+' - Часов: '+timer.hours+' - Минут:'+timer.minutes+' - Секунд:'+timer.seconds);
setTimeout(function ()
{
timer.get(year,month,day,hour,minute,second,msecond);
},1000);
}
// До конца света осталось
timer.get(2012,1,1,0,0,0,0);
|
|
26.09.2010, 11:13
|
Профессор
|
|
Регистрация: 14.12.2009
Сообщений: 155
|
|
mrspd, не умничайте. Ваш пример, по сути, - модификация алгоритма, словесно описанного вот этой строкой
Сообщение от with-love-from-siberia
|
Сложить все, вычесть единицу и снова расложить по отдельным элементам
|
. Проблема в том, что некоторое начальное значение может формироваться на стороне сервера. Естественно, что должно быть создана переменная типа Date, а потом с ней уже работать. Но в данном случае, с моей стороны, желательно дать подсказки, чтобы вопрошающий додумался до решения сам (что к сожалению, не произошло).
|
|
26.09.2010, 11:20
|
Новичок на форуме
|
|
Регистрация: 26.09.2010
Сообщений: 2
|
|
Создать конструкцию из множества условий по праву просто нельзя назвать правильным кодом.
Кто вам мешает брать начальные значения с сервера?
Мой пример показывает как это можно вписать в 20 строк, при этом заметьте, там нет не одного условия. А с вашими ifswitchelse'овыми конструкциями, чёрт ногу сломит...
Помимо этого код более читабелен, даже без комментариев. Даже если вы свои if конструкции откомментируете, у вас в совокупности комментариев получится больше, чем у меня кода
|
|
26.09.2010, 11:32
|
Профессор
|
|
Регистрация: 14.12.2009
Сообщений: 155
|
|
mrspd, Я с Вами полностью согласен, что работу таймера лучше реализовать с переменными типа Date. Но так уж сложилось, что у автора данной темы данные уже сформированы и необходимо работать с ними. Хотя, он мог бы изменить (полагаю, что мог бы) свой алгоритм на сервере, чтобы временнАя переменная формировалась на сервере, а клиентская часть уже работала в ней.
Посмотрите внимательно, я давал две подсказки, одна из них предлагает работать с целочисленным представлением времени. Именно это я имею в виду, говоря, что Ваш алгоритм - есть модификация моего словесного описания. Но есть отличия: Вы предлагаете вычислять разницу между началом и концом, я предлагаю вычитать единицу из уже существующей разницы. Однако, автору желается работать раздельно с каждой составляющей времени.
Можно, с определенной натяжкой, это рассматривать как третий вариант. К сожалению, автор темы не смог близко подойти ни к одному из предложенных решений.
|
|
26.09.2010, 18:22
|
Новичок на форуме
|
|
Регистрация: 10.08.2009
Сообщений: 7
|
|
Братья мир, я понял свои ошибки, драться не надо.
да принижать достоинство других не стоит, чтобы возвысить свое.
Всем спасибо. Я учусь и рад вашим подсказкам.
|
|
|
|