Pull to refresh

Comments 37

хорошая подборка, спасибо. Но для навигации уже требуется оглавление, добавите?
Действительно, очень полезная статья, но ИМХО, ничего нового я здесь не узнал...
думаю, даже если ничего нового, статейку можно повесить на стену. когда-нибудь да что-то забудете :)
а материал переводной (фраза "Далее перевод" в начале статьи) или нет? если переводной, почему не указан автор?
>статейку можно повесить на стену
Полностью согласен, уже сделал :)
хотел сначала написать от себя взгляд, потом перевод авторской статьи
Прекрасная подборка. Но всё это касается работы с временной зоной, которая как-то была задана. А вот как узнать временную зону пользователя, кроме прямого вопроса "введите Вашу временную зону"? :-)

Еще никак не могу придумать, как получить временную зону (точнее, часовое смещение в данный момент времени) для точки с заданными координатами. Ведь есть же карта часовых поясов, на которой они описаны довольно простыми кривыми... Теоретически, можно проверять принадлежность точки областям внутри этих кривых, если они где-то заданы...
Сходу - аяксовый запрос времени клиента или геоип. Конечно, на компе может стоять левое время, и человек может сидеть на иностранном провайдере и вообще через прокси, но по-моему, разумно при регистрации показывать юзеру полученное таким(и) способам(и) его же время и спрашивать что-нибудь в духе "нам кажется, у вас щас вот столько-то времени. угадали? ;)" и вариант изменения этого времени. Именно времени! Потому что поиск своего часвого пояса - не такая простая задача для людей, которые с этим не сталкивались или сталкивались, но редко. По времени - удобней.
Ну и верифаить это счастье можно при каждом новом визите, мол, "ой, у вас время сменилось. а хотите его и тут сменить?".
Да, конечно, это время сервера, это ресурсы, запросы и т.д. Но кто тут всё-таки "высшее звено пищевой цепочки (ц)", а? ;)
Как вариант, возможно. Для зарегистрированных пользователей так и буду делать. Даже без верификации. Один раз указал и не надо надоедать пользователю... Если надо — зайдет в настройки и сменит.
Я про аяксовский запрос. ГеоИП уж больно много ресурсов съест, а результат менее надежный, на мой взгляд.
Каких ресурсов? О_О
ГеоИП - это один запрос в базу. Ну и 6 метров данных, конечно, в мускуле-то, но не размеры же БД считать ресурсом =)
привязка к зоне по айпи должна ведь, по идее, довольно точно работать?
Если Вы про первую часть вопроса, то боюсь, что GeoIP съест все ресурсы.

А вот со второй частью что бы придумать..? (Определить часовой пояс по известным географическим координатам.)
Я ошибался насчет 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).
на сколько мне не изменяет память, в javascript есть метод какой-то.
Date::getTimezoneOffset
в php - перечисленными ниже способами
>Теперь граница интервала использования данного типа 4 Декабря 292277026596 год
Что же будем делать 5 декабря 292277026596 года? )
то же что и всегда)
седеть на хабре:)
Не то что седеть… Разлагаться уже даже не будем, я думаю.
Спасибо. Очень пригодится.
Читается как тематический справочник.
Мать моя женщина...
Скоро напишут фреймворк, зуб даю :)
скорее библиотеку
Библиотека - это уже старо и немодно :)
Должен быть фреймворк, обязательно MVC! :)
Хорошо, вот только КАК автоматически задетектить TimeZone клиента? Где-то видел, что в JavaScript есть функция, дающая офсет браузерной зоны в часах, но это не дает полной стандартной TZ. Кроме того, как показывает практика, показ на сайте локального времени вводит клиента в заблуждение, поскольку он уже привык к "официальному" (напр. московскому) времени. А выводить дату в формате с указанием зоны неэстетично. Поэтому возможным простым решением будет указывать на сайте серверную дату/время.
Мне одному "временная зона" режет глаз? На русский язык "time zone" лучше бы было переводить как "часовой пояс".
Спасибо, мне тоже очень понравилсась статья
UFO just landed and posted this here
1) time() - Возвращает количество секунд, прошедших с начала Эпохи Unix (The Unix Epoch, 1 января 1970, 00:00:00 GMT) до текущего времени.
2) http://ru2.php.net/manual/ru/function.gm… пример и комментарии по этой ссылке ответят на все вопросы
1. Верно.
2. gmdate - дата по GMT.
3. Не совсем, вы не учитываете переход на летнее время и еще много чего.

Именно поэтому, чтобы нам не париться с датами, создатели PHP вводят новые функции.
посмотрите на его 3 пункт, он там пишет про время сервера.
Кстати хороший тон держать время на сервере в GMT, в связи с чем программист должен сразу понимать работу с временными зонами
только не забывать до использования strtotime/strftime установить локаль setlocale(), чтобы не получать нотис.
За это я люблю Хабр: "сидишь, краем мозга думаешь, что очень хорошо бы в проекте предусмотреть то-то или то-то", и +- пару дней появляется заметка по теме - читаешь её, копаешь и используешь знания!

Спасибо!
Ох, может кто-то в курсе,

date_default_timezone_set('Europe/Kiev');
echo date('Y-m-d H:i:s');

Выдает +1 час от правильного времени. tzdata обновил — не помогает :(
Sign up to leave a comment.

Articles