Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отчёт времени к определённой дате 
:(
    Опции темы
ressac
Дата 2.2.2008, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 345
Регистрация: 25.11.2006

Репутация: 1
Всего: 1



Код

<html>

    <head>

    <script language="JavaScript">

    one_day=1000*60*60*24;
    d1=new Date(2008,3,1);
    var str="";

    function timer()

    {
        d2=new Date();

        str= "weeks: " + Math.ceil( (d1.getTime()-d2.getTime())/ (one_day*7)) + "<br><br>";
        document.getElementById('week').innerHTML=str;


        str= " days: " + Math.ceil( (d1.getTime()-d2.getTime())/ (one_day)) + "<br><br>";
        document.getElementById('days').innerHTML=str;

        str= " hours: " + Math.ceil( (d1.getTime()-d2.getTime())/ (one_day/24)) + "<br><br>";
        document.getElementById('hours').innerHTML=str;

        str= " Min: " + Math.ceil( (d1.getTime()-d2.getTime())/ (one_day/24/60)) + "<br><br>";
        document.getElementById('min').innerHTML=str;

        str= " Sec: " + Math.ceil( (d1.getTime()-d2.getTime())/ (one_day/24/60/60)) + "<br><br>";
        document.getElementById('sec').innerHTML=str;

            setTimeout("timer()",1000);
    }


    </script>

    </head>    
    <body onLoad="timer()">
    <div id='week'></div>
    <div id='days'></div>
    <div id='hours'></div>
    <div id='min'></div>
    <div id='sec'></div>
    </body>

</html>


можно как-то упростить код?
PM MAIL   Вверх
AKS
Дата 2.2.2008, 20:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Участник форума
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 20.9.2006

Репутация: 27
Всего: 52



Цитата(ressac @  2.2.2008,  18:37 Найти цитируемый пост)
можно как-то упростить код? 

Можно начать вот с этого:
Код

var diff = d1.getTime() - d2.getTime();

т.е. сохранять результат вычислений в переменной вместо того, чтобы несколько раз вычислять одно и тоже.
PM MAIL   Вверх
smartov
Дата 2.2.2008, 20:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 7
Всего: 259



Еще можно заблаговременно сохранить сколько осталось ждать в днях например в переменку days
тогда то, сколько осталось в неделях будет days/7, а в часах - days*24

Еще: вместо установки setTimeout функции на саму себя лучше использовать функцию setInterval

Это сообщение отредактировал(а) smartov - 2.2.2008, 20:54
PM MAIL   Вверх
ksnk
Дата 2.2.2008, 22:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 84
Всего: 386



Первая мысль, которая у меня появилась всвязи с этим кодом - он совершенен в своем уродстве... и никакие изменения не добавят совершенства... smile 
так что - переписать напрочь...
Пять почти одинаковых конструкций так и напрашиваются на то, чтобы из них изготовить функцию. ну или цикл, для любителей поизвращаться smile
Конструировать кусок html'я в JavaScript'е строковыми операциями представляется мне чем-то неприличным. Приличнее вывалить заголовки и BR'ы в html и вставлять искомые цифры в span'ы.
    <div>week:<span  id='week'></span><br/><br/></div>
 которые сидят внутри div'ов. К тому-же есть мнение, что пользоваться innerHTML настолько некошерно, что на нее отсутствует даже официальная документация.  smile 


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
AKS
Дата 3.2.2008, 09:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Участник форума
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 20.9.2006

Репутация: 27
Всего: 52



Цитата(ksnk @  2.2.2008,  22:10 Найти цитируемый пост)
К тому-же есть мнение, что пользоваться innerHTML настолько некошерно, что на нее отсутствует даже официальная документация.  smile  

Есть еще мнение, что такую документацию нам все же следует "подсунуть":
innerHTML in HTML
innerHTML  in XML
;)

PM MAIL   Вверх
ksnk
Дата 3.2.2008, 10:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 84
Всего: 386



AKS, Working Dratf на HTML 5? Ну, значит есть надежда, что здравый смысл таки победит ;)


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1861 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.