Комментарии 37
хорошая подборка, спасибо. Но для навигации уже требуется оглавление, добавите?
+6
Хорошо. Полезно. Грамотно.
Только опечаток полно :-)
Только опечаток полно :-)
0
Действительно, очень полезная статья, но ИМХО, ничего нового я здесь не узнал...
0
думаю, даже если ничего нового, статейку можно повесить на стену. когда-нибудь да что-то забудете :)
а материал переводной (фраза "Далее перевод" в начале статьи) или нет? если переводной, почему не указан автор?
а материал переводной (фраза "Далее перевод" в начале статьи) или нет? если переводной, почему не указан автор?
0
Прекрасная подборка. Но всё это касается работы с временной зоной, которая как-то была задана. А вот как узнать временную зону пользователя, кроме прямого вопроса "введите Вашу временную зону"? :-)
Еще никак не могу придумать, как получить временную зону (точнее, часовое смещение в данный момент времени) для точки с заданными координатами. Ведь есть же карта часовых поясов, на которой они описаны довольно простыми кривыми... Теоретически, можно проверять принадлежность точки областям внутри этих кривых, если они где-то заданы...
Еще никак не могу придумать, как получить временную зону (точнее, часовое смещение в данный момент времени) для точки с заданными координатами. Ведь есть же карта часовых поясов, на которой они описаны довольно простыми кривыми... Теоретически, можно проверять принадлежность точки областям внутри этих кривых, если они где-то заданы...
0
Сходу - аяксовый запрос времени клиента или геоип. Конечно, на компе может стоять левое время, и человек может сидеть на иностранном провайдере и вообще через прокси, но по-моему, разумно при регистрации показывать юзеру полученное таким(и) способам(и) его же время и спрашивать что-нибудь в духе "нам кажется, у вас щас вот столько-то времени. угадали? ;)" и вариант изменения этого времени. Именно времени! Потому что поиск своего часвого пояса - не такая простая задача для людей, которые с этим не сталкивались или сталкивались, но редко. По времени - удобней.
Ну и верифаить это счастье можно при каждом новом визите, мол, "ой, у вас время сменилось. а хотите его и тут сменить?".
Да, конечно, это время сервера, это ресурсы, запросы и т.д. Но кто тут всё-таки "высшее звено пищевой цепочки (ц)", а? ;)
Ну и верифаить это счастье можно при каждом новом визите, мол, "ой, у вас время сменилось. а хотите его и тут сменить?".
Да, конечно, это время сервера, это ресурсы, запросы и т.д. Но кто тут всё-таки "высшее звено пищевой цепочки (ц)", а? ;)
0
Как вариант, возможно. Для зарегистрированных пользователей так и буду делать. Даже без верификации. Один раз указал и не надо надоедать пользователю... Если надо зайдет в настройки и сменит.
0
Я про аяксовский запрос. ГеоИП уж больно много ресурсов съест, а результат менее надежный, на мой взгляд.
0
Каких ресурсов? О_О
ГеоИП - это один запрос в базу. Ну и 6 метров данных, конечно, в мускуле-то, но не размеры же БД считать ресурсом =)
ГеоИП - это один запрос в базу. Ну и 6 метров данных, конечно, в мускуле-то, но не размеры же БД считать ресурсом =)
0
См. чуть ниже: http://habrahabr.ru/blog/php/35329.html#…
Хотя, на виртуальном хостинге и размеры БД тоже важны.
Хотя, на виртуальном хостинге и размеры БД тоже важны.
0
привязка к зоне по айпи должна ведь, по идее, довольно точно работать?
0
Если Вы про первую часть вопроса, то боюсь, что GeoIP съест все ресурсы.
А вот со второй частью что бы придумать..? (Определить часовой пояс по известным географическим координатам.)
А вот со второй частью что бы придумать..? (Определить часовой пояс по известным географическим координатам.)
0
Я ошибался насчет GeoIP. Поставил базу от MaxMind, скомпилировал примеры на C и долго удивлялся:
GeoIP City
60000 lookups made in 2.902537 seconds
GeoIP City with GEOIP_INDEX_CACHE
240000 lookups made in 1.788291 seconds
GeoIP City with GEOIP_MEMORY_CACHE
600000 lookups made in 0.934157 seconds
С PHP еще не пробовал, но с СИ всё просто летает. Дело было на VDS (1.5GHz, RAM 512Mb).
GeoIP City
60000 lookups made in 2.902537 seconds
GeoIP City with GEOIP_INDEX_CACHE
240000 lookups made in 1.788291 seconds
GeoIP City with GEOIP_MEMORY_CACHE
600000 lookups made in 0.934157 seconds
С PHP еще не пробовал, но с СИ всё просто летает. Дело было на VDS (1.5GHz, RAM 512Mb).
0
на сколько мне не изменяет память, в javascript есть метод какой-то.
Date::getTimezoneOffset
в php - перечисленными ниже способами
Date::getTimezoneOffset
в php - перечисленными ниже способами
0
>Теперь граница интервала использования данного типа 4 Декабря 292277026596 год
Что же будем делать 5 декабря 292277026596 года? )
Что же будем делать 5 декабря 292277026596 года? )
0
Спасибо. Очень пригодится.
Читается как тематический справочник.
Читается как тематический справочник.
0
Мать моя женщина...
Скоро напишут фреймворк, зуб даю :)
Скоро напишут фреймворк, зуб даю :)
+1
Хорошо, вот только КАК автоматически задетектить TimeZone клиента? Где-то видел, что в JavaScript есть функция, дающая офсет браузерной зоны в часах, но это не дает полной стандартной TZ. Кроме того, как показывает практика, показ на сайте локального времени вводит клиента в заблуждение, поскольку он уже привык к "официальному" (напр. московскому) времени. А выводить дату в формате с указанием зоны неэстетично. Поэтому возможным простым решением будет указывать на сайте серверную дату/время.
0
Мне одному "временная зона" режет глаз? На русский язык "time zone" лучше бы было переводить как "часовой пояс".
+5
Спасибо, мне тоже очень понравилсась статья
0
НЛО прилетело и опубликовало эту надпись здесь
1) time() - Возвращает количество секунд, прошедших с начала Эпохи Unix (The Unix Epoch, 1 января 1970, 00:00:00 GMT) до текущего времени.
2) http://ru2.php.net/manual/ru/function.gm… пример и комментарии по этой ссылке ответят на все вопросы
2) http://ru2.php.net/manual/ru/function.gm… пример и комментарии по этой ссылке ответят на все вопросы
0
1. Верно.
2. gmdate - дата по GMT.
3. Не совсем, вы не учитываете переход на летнее время и еще много чего.
Именно поэтому, чтобы нам не париться с датами, создатели PHP вводят новые функции.
2. gmdate - дата по GMT.
3. Не совсем, вы не учитываете переход на летнее время и еще много чего.
Именно поэтому, чтобы нам не париться с датами, создатели PHP вводят новые функции.
0
только не забывать до использования strtotime/strftime установить локаль setlocale(), чтобы не получать нотис.
0
Отличная статья!
0
спасибо, добавил в мемориз
0
За это я люблю Хабр: "сидишь, краем мозга думаешь, что очень хорошо бы в проекте предусмотреть то-то или то-то", и +- пару дней появляется заметка по теме - читаешь её, копаешь и используешь знания!
Спасибо!
Спасибо!
0
Ох, может кто-то в курсе,
date_default_timezone_set('Europe/Kiev');
echo date('Y-m-d H:i:s');
Выдает +1 час от правильного времени. tzdata обновил — не помогает :(
date_default_timezone_set('Europe/Kiev');
echo date('Y-m-d H:i:s');
Выдает +1 час от правильного времени. tzdata обновил — не помогает :(
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Работа с временными зонами в PHP