IPB

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в эту темуОткрыть новую тему
> Часы с учётом часовых поясов, как расчитать время в другом часовом поясе
  • Сервис онлайн-записи на собственном Telegram-боте
    Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое расписание, но и напоминать клиентам о визитах тоже. Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.
    Для новых пользователей первый месяц бесплатно.
    Чат-бот для мастеров и специалистов, который упрощает ведение записей:
    Сам записывает клиентов и напоминает им о визите;
    Персонализирует скидки, чаевые, кэшбэк и предоплаты;
    Увеличивает доходимость и помогает больше зарабатывать;
    Начать пользоваться сервисом
  • Как продвинуть сайт на первые места?
    Вы создали или только планируете создать свой сайт, но не знаете, как продвигать? Продвижение сайта – это не просто процесс, а целый комплекс мероприятий, направленных на увеличение его посещаемости и повышение его позиций в поисковых системах.
    Ускорение продвижения
    Если вам трудно попасть на первые места в поиске самостоятельно, попробуйте технологию Буст, она ускоряет продвижение в десятки раз, а первые результаты появляются уже в течение первых 7 дней. Если ни один запрос у вас не продвинется в Топ10 за месяц, то в SeoHammer за бустер вернут деньги.
    Начать продвижение сайта
zakobrezki
сообщение 29.07.2008 - 12:09
Сообщение #1


Новичок
*

Группа: Новичок
Сообщений: 2
Регистрация: 29.07.2008
Пользователь №: 4441



Необходимо создать аналоговые часы на FLASH с учётом времени в разных часовых поясах. Сами часы делаются достаточно просто. Вот стандартный алгоритм расчёта перемещения стрелок по циферблату:

Код
// Читаем текущее системное время
time=new Date();

// Выуживаем часы, минуты, секунды
seconds = time.getSeconds();
minutes = time.getMinutes();
hours = time.getHours();

hours = hours + (minutes/60);

// Подсчитаем часы, минуты, секунды
seconds = seconds*6;
minutes = minutes*6;
hours = hours*30;

// Вращаем стрелки
sec._rotation=seconds;
min._rotation=minutes;
hour._rotation=hours;


Для того, чтобы получить время по гринвичу(UTC он же GMT). Кусок по выуживанию часов, минут, секунд изменится следующим образом:

Код
// Выуживаем часы, минуты, секунды по Гринвичу(GMT)
seconds = time.getUTCSeconds();
minutes = time.getUTCMinutes();
hours = time.getUTCHours();

Остаётся сообразить, как переделать этот кусок для разных часовых поясов, с учётом переходов на летнее/змнее время.
Подскажите пожалуйста? (IMG:http://f.hostq.ru/forum/style_emoticons/default/smile.gif)
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
tiHo
сообщение 30.07.2008 - 02:15
Сообщение #2


C:\>
*****

Группа: Супермодераторы
Сообщений: 1556
Регистрация: 10.04.2006
Из: Млечный Путь, 3-я планета от Солнца, Россия, Москва, Люблино.
Пользователь №: 293



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

а чтобы на разные часовы пояса, так там же ясно объяснено, что есть +0 +1+2+3+4+5+6+7 итд и так же -1-2-3-4-5-6-7.. итд так вот и отнимай или прибавляй к переменной hours значение часового пояса.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
zakobrezki
сообщение 30.07.2008 - 02:28
Сообщение #3


Новичок
*

Группа: Новичок
Сообщений: 2
Регистрация: 29.07.2008
Пользователь №: 4441



Цитата(tiHo @ 30.07.2008 - 03:15) *
отнимай или прибавляй к переменной hours значение часового пояса.

Так пока и сделал. За одним небольшим нюансом. Летнее время в РФ - GMT+4, зимнее - GMT+3. А в Нью йорке зимой GMT-5, летом GMT-4. (http://ru.wikipedia.org/wiki/Нью_йорк)
В этом вся и загвоздка. (IMG:http://f.hostq.ru/forum/style_emoticons/default/smile.gif)
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
AlexYeCu
сообщение 3.08.2008 - 23:51
Сообщение #4


Участник
**

Группа: Новичок
Сообщений: 69
Регистрация: 3.01.2007
Пользователь №: 2312



Для чего делаются часы? Если для сайта, то выбранный вариант решения не годится. На сайте — только опрос серверных скриптов. Потому что:
- часы на машине-клиенте могут быть неправильно настроены
- разные операционные системы имеют разное представление о том, что есть системное время: ms windows системы уверены, что это местное время, все остальные, что Гринвич (к которому ещё надо прибавить время в зависимости от того, какой пояс выставлен). Соответственно потенциальные грабли.
Так что серверную часть часиков на php (к примеру), клиентскую на флэш. Как вариант — взять время при старте флэшки от сервера, внести поправку с временем машины и дальше так отсчитывать. Экстремальные варианты вроде просевшей батарейки можно не учитывать, если это конечно не какие-нибудь важные часы для сайта биржи или спортивного тотализатора.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
chingachgoog
сообщение 6.03.2009 - 13:26
Сообщение #5


Активист
****

Группа: Пользователь
Сообщений: 980
Регистрация: 27.02.2009
Из: Moscow
Пользователь №: 9144



Цитата(zakobrezki @ 30.07.2008 - 02:28) *
Так пока и сделал. За одним небольшим нюансом. Летнее время в РФ - GMT+4, зимнее - GMT+3. А в Нью йорке зимой GMT-5, летом GMT-4.
В этом вся и загвоздка. (IMG:http://f.hostq.ru/forum/style_emoticons/default/smile.gif)


А что тут смущает? Смысл летнего времени - часы на час вперед:
+3 (москва зимнее) +1 (на летнее) = +4
-5 (яблоко зимнее) +1 (на летнее) = -4

Засада в другом. В каждой местности может быть свой собственный график перехода на летнее/зимнее время или даже вообще такого перехода не существовать (без запудривания мозгов людям). Потому "универсальную формулу" на флеше не сделаешь. Надо делать расчет-проверку для конкретной местности. (ситуация когда пользователь отключил на своем компе переход на летнее время и т.п. вообще не рашаемая - у него изначально будет GMT неверно). Например для Москвы и Яблока график перехода различен. В москве летнее время начинается в субботу перед последним воскресеньем марта, а в Яблоке - второе воскресенье марта.

NB!
Местное время - это вообще произвол местных властей. Кто как хочет, тот так и устанавливает.
Например, московский часовой пояс +2 часа от Гринвича. +1 час добавляет декретное время большевиков (вот и получается зимой +3 часа). И еще +1 час накидывают летом (+4 часа летом).
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия Сейчас: 11.09.2011 - 19:04