Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Часы. Правильное определение времени (http://www.flasher.ru/forum/showthread.php?t=152014)

suvorov 10.03.2011 11:15

Часы. Правильное определение времени
 
Добрый день господа! Прихожу за помощью на этот форум, уже не в первый раз и все по той же проблеме.

Собственно есть часы во Flash, на них показывается время в 3-х часовых поясах. В целом все круто, когда человек смотрит эти часы из Москвы (он видит правильное время в Екатеренбурге и в Дели), но когда человек заходит из Екатеринбурга, то здесь становится все неверно.



Код:

function initClock( mov, offset )
{
        mov.onEnterFrame = function()
        {
                myDate = new Date();
                myDate.setMinutes ( myDate.getMinutes() + offset );
                //trace( myDate.getMinutes() +" / "+ min2 )
               
                hour = myDate.getHours();
                min = myDate.getMinutes();
                sec = myDate.getSeconds();               
               
                this.m3._rotation = min * 6 + sec * 1.000000E-001
                this.s3._rotation = sec * 6
                this.h3._rotation = hour* 30 + min * 5.000000E-001
        }
}


initClock( CL, 0 )
initClock( CL2, 120 )
initClock( CL3, 150 )


Если можно, то подскажите, что и где заменить. У меня проблема с пониманием всех этих штук((. Буду очень благодарен!

mooncar 10.03.2011 11:25

Простой работой только в коде AS тут вопрос не решить. Все дело в том, что сейчас у вас используется время компа пользователя, а не точное время.
Более-менее точное время можно взять с помощью php-скрипта с сервера, на котором хостится флешка. Например, только один раз для синхронизации. Или несколько раз в минуту (на случай, если вдруг юзер успел перевести время на компе опять).

Tails 10.03.2011 11:40

suvorov
  1. Получить время по гринвичу.
    • Либо с компа юзара
    • Либо с сервера (предпочтительнее)
  2. Добавить к исходному времени сдвиг часового пояса, на котором сидит юзер (грузим с компа)
  3. К полученному результату плюсуем сдвиг для определённой столицы.
  4. Получаем результат - время в столице другой страны, относительно часового пояса юзара.

Оперировать нужно датой в милисекундах, затем полученный результат возводить в понятную юзару форму.
... хотя в милисекундах - даже не обязательно. :quiet:

mooncar 10.03.2011 11:45

Tails, а вдруг у юзера БИОС слетел, батарейка померла и там 1999 год стоит? Как в этом случае с компа получить время по гринвичу? :)
Время надо брать с сервера, раз уж автор делает замыслил такую систему.

Tails 10.03.2011 11:47

mooncar
Полностью согласен. Грузить с компа юзара - это только как альтернативный вариант, при ну совсем не возможной реализаций забора времени с сервера.

dark256 10.03.2011 15:13

Если у него слетел БИОС и сдохла батарейка, как думаете, много там на компе при всем этом будет интернета и серверов? :)))

Вот утилитка для более детального разбора что происходит во флэше со временем:
http://vkontakte.ru/app1871605

mooncar 10.03.2011 15:37

Цитата:

Сообщение от dark256 (Сообщение 979308)
Если у него слетел БИОС и сдохла батарейка, как думаете, много там на компе при всем этом будет интернета и серверов? :)))

Если сдохла батарейка, то комп может работать как ни в чем не бывало, загрузившись с дефолтными настройками БИОСА, только время может хромать и некоторые пользовательские настройки исчезнут. В большинстве случаев комп будет работать относительно благополучно, после того как юзер жамкнет F1, и загрузка пойдет далее.

suvorov 10.03.2011 20:02

Мужики)) Вы о чем? Нет, в смысле, спасибо всем конечно за столь глубокое обсуждение, но я реально ничего не понимаю...Можно какой-нибудь кусочек кода привести в пример? Ну или слепить за меня, я конечно не на бирже бесплатных рабочих, но надеюсь на Вашу помощь. С этими часами ковыряюсь уже 3-ю неделю...и ничего, не понимаю...

dark256 11.03.2011 00:30

Цитата:

Если сдохла батарейка, то комп может работать как ни в чем не бывало, загрузившись с дефолтными настройками БИОСА, только время может хромать и некоторые пользовательские настройки исчезнут
Нуууу..... эээ... нотебяка. 1й пень.
Батарейка цмоса сдохла. просит ввести параметры винта.... эээ... и? :)))))))

Добавлено через 1 минуту
Цитата:

Мужики)) Вы о чем? Нет
Мужикик теоретизируют. Брать время с компа. Часовой пояс - на ноль. Относительно нуля рисовать часы для всех, включая для себя.
Кстати с этой весны станет проще - UTC зимнее-летнее время не знает :)

suvorov 11.03.2011 15:13

Ответ
 
А у меня откуда время берется? разве не с компа?

Смысл такой, у меня 3-е часов:

1. Москва
2. Екатеринбург
3. Дели

Захожу с Московского компа и беру время с компа к первым часам
А вот если я захожу с Екатеринбурга и беру время с компа к первым часам, то эти часы покажут уже время Екатеринбурга

Пришел к мнению, что время лучше брать с интернета, так просто думается проще)

Можете как-нибудь привести пример, как мне к часам привязать время с сервера? Наверняка есть такая фича. Вообще я думаю будет полезным вложением в жизнь форума, кусочек кода, который берет время с интернета для Москвы и других городов.


Часовой пояс GMT +4, время: 09:28.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.