Рискну предположить, что внешнему интерфейсу вообще не нужно ЛЮБОЕ понимание часовых поясов.
Когда они выбирают время из средства выбора даты, просто передайте его обратно как есть (если они выбрали9 вечера, просто пройдите назад 9 вечера).На сервере преобразуйте эту дату и время в временную метку.
В этот момент вы можете затем отрегулировать часовой пояс пользователя на основе IP-адреса или по своему усмотрению реализовать его.Вы можете просто добавить или вычесть часы из вашего целевого времени, чтобы соответствовать часовому поясу пользователя.
Однако это означает, что вам также нужно будет повторно проанализировать время, когда вы выводите их, чтобы убедиться, что они отображаютсякак они должны.Так, например, если вы храните временную метку Unix, убедитесь, что вы распечатываете отформатированную дату в зависимости от местоположения пользователя.
Вы обязательно должны разрешить пользователю выбирать собственный часовой пояс для переопределения, однако высделать это по умолчанию.