Задать вопрос
Ответы пользователя по тегу PostgreSQL
  • PHP, Yii2 и PostgreSQL. Как сделать поддержку временных зон для юзеров?

    Не знаю как в чистом PHP это сделать, но в Yii 2 достаточно сделать так.
    config/main.php
    'components' => [
        'formatter' => [
           'dateFormat' => 'd.MM.Y',
           'timeFormat' => 'H:mm:ss',
           'datetimeFormat' => 'd.MM.Y H:mm',
       ],
    ],


    Вывод времени и даты
    /* Тут идет установка часового пояса
    * естественно вы можете хранить их в кэше или БД 
    * или вычислять по IP или JS. Тайм зоны можно хранить 
    * в разных форматах. Лучше в UTC, а еще лучше в
    * UNIX timestamp. 1412599260 / 2014-10-06 12:41:00
    */
    
    $myTimeZone = "Europe/Berlin"; 
    
    Yii::$app->timeZone = $myTimeZone;
    Yii::$app->getFormatter()->asDate(time()); // время 
    Yii::$app->getFormatter()->asDatetime(time()); // Дата и время


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

    Список тайм доступных тайм зон в PHP

    UPD: По поводу летнего времени. Можно в форме профиля прикрутить чекбокс "учитывать летнее время", а потом сделать в БД триггер, который в определенную дату менял бы таймштампы +1 и -1 час.
    Ответ написан
    Комментировать