Отображение американского почтового индекса к часовому поясу

Когда пользователи регистрируются в нашем приложении, мы можем вывести их почтовый индекс, когда мы проверяем их против национальной базы данных. Каков был бы лучший способ определить хорошее потенциальное предположение их часового пояса от этого почтового индекса?

Мы пытаемся минимизировать объем данных, который мы явно должны попросить у них. Они смогут вручную установить часовой пояс позже, если наше лучшее предположение будет неправильным. Я понимаю, что почтовые индексы не помогут с выяснением часового пояса за пределами США, но в этом случае мы должны были бы вручную спросить так или иначе, и мы имеем дело преимущественно с США независимо.

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

Хотя язык не особенно релевантен, поскольку я могу, вероятно, преобразовать вещи, однако необходимые, мы используем PHP и MySQL.

82
задан Doug Kavendek 16 March 2010 в 16:46
поделиться

4 ответа

Я только что нашел бесплатную базу данных zip , которая включает в себя смещение времени и участие в DST. Мне действительно нравится ответ Эрика Дж., Поскольку он поможет мне выбрать фактический часовой пояс, а не просто смещение (потому что вы никогда не можете быть полностью уверены в правилах), но я думаю, что могу начать с этого и попытаться найти лучшее совпадение часового пояса на основе конфигурации смещения / летнего времени. Я думаю, что могу попытаться настроить простую версию ответа Development 4.0, чтобы проверить, что я получаю из информации zip в качестве теста на работоспособность. Это определенно не так просто, как я бы надеялся, но комбинация должна дать мне как минимум 90% уверенности в часовом поясе пользователя.

37
ответ дан 24 November 2019 в 09:20
поделиться

Если хотите, вы также можете узнать часовой пояс, спросив у браузера У Джоша Фрейзера хорошая запись на нем здесь

var rightNow = new Date();
var jan1 = new Date(rightNow.getFullYear(), 0, 1, 0, 0, 0, 0);
var temp = jan1.toGMTString();
var jan2 = new Date(temp.substring(0, temp.lastIndexOf(" ")-1));
var std_time_offset = (jan1 - jan2) / (1000 * 60 * 60);

Второе, что вам нужно знать, это то, соблюдается ли в этом месте летнее время (DST) или нет. Поскольку летнее время всегда наблюдается летом, мы можем сравнить временной сдвиг между двумя датами в январе с временным сдвигом между двумя датами в июне. Если смещения разные, то мы знаем, что в этом месте соблюдается летнее время. Если смещения такие же, то мы знаем, что в этом месте НЕ соблюдается летнее время.

var june1 = new Date(rightNow.getFullYear(), 6, 1, 0, 0, 0, 0);
temp = june1.toGMTString();
var june2 = new Date(temp.substring(0, temp.lastIndexOf(" ")-1));
var daylight_time_offset = (june1 - june2) / (1000 * 60 * 60);
var dst;
if (std_time_offset == daylight_time_offset) {
    dst = "0"; // daylight savings time is NOT observed
} else {
    dst = "1"; // daylight savings time is observed
}

Вся заслуга в этом принадлежит Джошу Фрейзеру.

Это может помочь вам с клиентами за пределами США и может дополнить ваш подход к использованию почтового индекса.

Вот SO-вопросы, которые касаются получения часового пояса из javascript

8
ответ дан 24 November 2019 в 09:20
поделиться

Большинство штатов находятся в одном часовом поясе (хотя есть несколько исключений). Большинство почтовых индексов не пересекают границы штата (хотя есть несколько исключений).

Вы можете быстро составить собственный список часовых поясов для каждого zip-архива, объединив эти факты.

Вот список диапазонов почтовых индексов для каждого состояния и список состояний для каждого часового пояса .

Вы можете увидеть границы почтовых индексов и сравнить их с картой часовых поясов, используя эту ссылку или Google Earth, чтобы сопоставить почтовые индексы с часовыми поясами для штатов, которые разделены линией часовых поясов.

Большинство неамериканских стран, с которыми вы имеете дело, вероятно, находятся точно в одном часовом поясе. Вы можете посмотреть, откуда приходят ваши самые популярные посетители из неамериканских стран, и просто посмотреть их часовой пояс.

24
ответ дан 24 November 2019 в 09:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: