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

Я делаю приложение, где пользователь может опубликовать статью. Если кто-то в Японии публикует статью 2017/03/25 09:00, должен ли я установить дату и время публикации статей в это время или установить время сервера?

Также, если кто-то в США заходит на сайт и собирается прочесть статью, в какую дату в статье должно быть сказано, что она была опубликована?

Если я скажу 2017/03/25 09:00, что время для пользователя в США еще не произошло, и это будет в будущем для него, в какое время я должен показать кого-то из другого конца света?

0

Решение

На мой взгляд, более последовательный способ справляться со временем — это использовать только Время UTC (очень похоже на GMT на практике, кроме того, функция php gmt * фактически использует время UTC) внутренне, например, дата / время, хранящиеся в постоянном хранилище (дБ и т. д.) и использование часового пояса пользователя для отображения времени для каждого пользователя.

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

В вашем примере не имеет значения, какое время отображать, так как вы будете отображать только релевантное время, например, время, когда оно действительно было создано в формате UTC, просто переведенное в часовой пояс каждого пользователя.
И не волнуйтесь, время всегда течет, никто не может увидеть, что не произошло, если временная привязка является последовательной. Неважно, видит ли кто-то другое время на своих часах, это все еще может быть тот же самый момент.

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

Это также способ упростить вашу модель, так как использование единой временной привязки упростит сравнение по времени для разных объектов и снизит риск неправильной настройки (одна единственная временная настройка везде).

углерод Легко использовать с Laravel, и это удобный способ работы с датой / временем.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]