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

Например, сейчас вторник, 15:00, и я планирую консультацию на следующий вторник, тоже на 15:00. На вашем сервере сейчас 13:00. Сервер также знает, что он находится часовом поясе UTC+3, например. Значит я запланировал консультацию на 10:00 UTC на следующий вторник. Для другого пользователя вы сможете отобразить это время в его часовом поясе, зная разницу между часами на сервере и на его компьютере.

Переводы стрелок начинают иметь значение только в случае, если я создаю консультацию до перехода, но сама она будет после (или наоборот). Например, в нашем примере в ближайшие выходные будет переход на летнее время. Это значит, что 10:00 UTC следующего вторника уже будет соответствовать 16:00, а я⁠—то хотел консультацию в 15:00 часов. Вот тут ваш сайт должен уметь понять, что на самом деле надо было записать мою консультацию на 9:00 UTC на следующий вторник.

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

Как видите, вопрос не про интерфейс вообще, а про аккуратное программирование.

При этом в интерфейсе хорошо бы что‑нибудь отобразить обнадёживающее типа такого:

Консультация назначена на вторник, 10 августа, 15:00 (Челябинск, Россия)

У Ивана Петрова также будет 15:00 (Карачи, Пакистан)

Или:

Консультация назначена на среду, 10 ноября, 22:00 (Челябинск, Россия)

У Фёдора Сидорова это будет 9:00 (Ванкувер, Канада), так как 7 ноября там переведут часы на час назад.

Отправить
Поделиться
Запинить

Рекомендуем другие советы