Это, безусловно, основанный на местоположении просмотр против места регистрации.
Я предполагаю, что они вычисляют и кэшируют часовой пояс для места проведения при его создании.Я бы сохранил эту информацию в виде карты кортежей со строками, привязанными к таким данным, как city, [state], country, в распределенной базе данных хеш-таблиц, такой как memcached.Я бы оставлял ограничивающие полигоны доступными для каждого часового пояса (а также многих других географических данных) и предоставлял бы сервис для запросов на основе широты / долготы.Обычно это называется сервис геокодирования.В зависимости от ограничений памяти и изменчивости использования я бы заполнил отображение кортежей из этой службы лениво (т. Е. Только по запросу пользователей).
Для проверок, не имеющих места, они, вероятно, вычисляют его один раз на основе широты / долготы.Храните и сохраняйте эту информацию в течение более короткого промежутка времени, если другие пользователи выполняют регистрацию в том же месте.Могу поспорить, что они также обычно пользуются тем, что поле часового пояса является необязательным, и не заполняют его, если служба геокодирования перегружена.
Если вы ищете службу, которая может обрабатывать этивиды запросов, проверьте http://www.geonames.com ( документация ).