Отображение времени с разными часовыми поясами в порядке, соответствующем часовому поясу пользователя. - PullRequest
4 голосов
/ 03 апреля 2019

У меня есть 2 магазина в разных странах (скажем, в США и Японии)

И пользователь, использующий мое приложение в Германии GMT + 2

Два магазина дают мне даты заказа в соответствии с его часовым поясом

Магазин в США расположен в Лос-Анджелесе по Гринвичу -7. Магазин в ЯПОНИИ находится в Токио по Гринвичу + 9

Предположим, что два заказа проданы одновременно

Я хочу показывать пользователям заказы в порядке, соответствующем немецкому часовому поясу

Мой вопрос заключается в том, как хранить даты заказов в mysql (timestamp (int) или datetime) и как я могу преобразовать эти даты в часовой пояс пользователя

- Изменить -

для тех, кто хочет конвертировать метки времени в дату / время с часовыми поясами

            $timestamp = 1554280893 ;
            $datetimeFormat = 'Y-m-d H:i:s';

            $date = new DateTime("America/New_York");

            $date->setTimestamp($timestamp);

$utc=new DateTime($date->format($datetimeFormat),new DateTimeZone("America/New_York"));

            $utc->setTimezone(new DateTimeZone("UTC"));

            echo  $utc->format("Y-m-d H:i:s");

Я конвертирую все метки времени в формат UTC и сохраняюв дБЗатем я упорядочиваю все данные в зависимости от часового пояса пользователя, используя функцию CONVERT_TZ () Mysql

Ответы [ 2 ]

3 голосов
/ 03 апреля 2019

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

Первый: конвертируйте время перед сохранением в MySQL.

Второй: используйте CAST by (в вашем запросе mysql)

SELECT CAST (getdate () AS date);

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

mysql функции даты и времени

2 голосов
/ 03 апреля 2019

Будет лучше сохранить дату и время в формате UTC и отобразить его в соответствии с часовым поясом пользователя.Преобразуйте дату и время в SQL-запрос с помощью этого CONVERT_TZ(orderDate,'+00:00','+02:00')

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...