Расчет часового пояса человека (смещение по Гринвичу) на основе номера телефона?

Я получил запрос на отображение местного времени человека на основе его номера телефона. Я знаю наше местное смещение по Гринвичу, поэтому я могу обрабатывать телефоны в США через таблицу базы данных, которая у нас есть, которая связывает zip_code США со смещением по Гринвичу (например, -5). Но я понятия не имею, как конвертировать неамериканские телефонные номера или названия стран (у этих людей, очевидно, нет почтового индекса).

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

Извините за все, что я не ясно заявил, что рассматривал ДОМАШНИЕ телефонные номера. Так что роуминг не проблема. Я ищу какую-нибудь справочную таблицу или приложение Oracle, из которого я могу получить эту информацию.


person Stew S    schedule 26.01.2009    source источник
comment
каковы ваши требования к пользователям в роуминге? Завтра я буду в США, но с номером +44...   -  person Alnitak    schedule 27.01.2009
comment
вам нужно будет сопоставить номер телефона с адресами, а затем с TZ. Первый шаг вообще будет невозможен (мобильные телефоны), если у вас нет дополнительной информации. Второй выходит за рамки заголовка (я бы просто задал этот вопрос)   -  person BCS    schedule 27.01.2009
comment
Возможный дубликат Получить текущее время с номером телефона   -  person Matt Johnson-Pint    schedule 31.07.2017


Ответы (7)


Во Флориде два часовых пояса, но во многих странах только один. Вам понадобится эта таблица: http://en.wikipedia.org/wiki/List_of_country_calling_codes . Выделите код страны из телефонного номера, найдя 1 и код города для стран NANPA (те страны, которые используют то же распределение 1+код города, что и США), 7 для России или Казахстана. Если это не совпадает, проверьте, начинается ли номер с одного из двухзначных префиксов вызова, а затем с трехзначных.

Помните, что первые несколько цифр номера могут быть префиксом международного набора и не являются частью телефонного номера.

Для стран, охватывающих более одного часового пояса, узнайте, можете ли вы получить информацию о распределении от их национального регулятора телекоммуникаций. Для США и других стран NANPA посетите http://www.nanpa.com/ .

Конечно, ваши результаты будут далеки от совершенства, но, надеюсь, вы разбудите меньше клиентов от их ночного сна.

person joeforker    schedule 26.01.2009
comment
Спасибо за эти ссылки. На самом деле я работаю в колледже и буду показывать местное время, чтобы мы могли обращаться к нашим выпускникам в разумное время суток. Мы пытаемся поступать правильно! - person Stew S; 27.01.2009
comment
Если у вас уже есть их номера телефонов, наверняка у вас есть их адрес? - person joeforker; 27.01.2009

Местное время — это одно, но если у вас есть клиенты по всему миру, необходимо учитывать и местные привычки.

Люди обычно ложатся спать раньше в Норвегии, чем в Испании (и они находятся в том же часовом поясе).

person bortzmeyer    schedule 27.01.2009

Возможно, вы сможете получить от телефонной компании данные о местоположении (эта информация должна существовать для стационарных телефонов и должна существовать для сотовых), но рассчитывайте на оплату.

person BCS    schedule 26.01.2009

С некоторыми странами легко, так как они находятся в одном часовом поясе. Посмотрите на Европу и добавьте миллионы людей, просто используя международный телефонный код. +47 для Норвегии и т. д.

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

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

С уважением

person tovare    schedule 26.01.2009

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

person dar7yl    schedule 26.01.2009

Невозможный. Если я проеду около 400 миль на восток (западное побережье США), я сломаю ваш алгоритм, имея число XXX в часовом поясе YYY.

Теперь, если это приложение для мобильного телефона, это кажется возможным с что-то под названием NITZ< /а>.

person jcollum    schedule 26.01.2009
comment
J, Спасибо, но я не пытаюсь иметь дело с сотовыми телефонами, только дома. - person Stew S; 27.01.2009

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

Возьмем США и рассмотрим только 4 основных часовых пояса. Скажем, мы определяем приемлемое время с 10:00 до 19:00. Я сомневаюсь, что даже норвежские холостяки-фермеры уходят до 19:00.

Поэтому, если вы знаете, что телефон находится в США, не звоните до 13:00. Таким образом, если они находятся в Нью-Йорке или Лос-Анджелесе, это все еще после 10 утра. И никаких звонков после 19:00. Кого волнует, будет ли это мейн Флориды или часом позже попрошайничать? Даллас или Эль-Пасо, тоже один и тот же штат, но разные часовые пояса. Для США отфильтруйте AK и HI. Единственная серьезно трудная страна — это Россия — много часовых поясов.

person Community    schedule 27.01.2009