Установка Time Zone во всем приложении.

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Аватара пользователя
porcelanosa
Сообщения: 570
Зарегистрирован: 2010.03.16, 04:31
Откуда: Москва

Установка Time Zone во всем приложении.

Сообщение porcelanosa »

Я усанавливаю Time Zone в index.php

Код: Выделить всё

// Globally define the Timezone
        define('TIMEZONE', 'EST');
        
     // Set Timezone
    date_default_timezone_set(TIMEZONE);
И потом в db.php

Код: Выделить всё

[
            'class'        => 'yii\db\Connection',
            'dsn'          => 'mysql:host=localhost;dbname=dbname',
            'username'     => 'root',
            'password'     => 'pass',
            'charset'      => 'utf8',
            'on afterOpen' => function ($event) {
                // $event->sender refers to the DB connection
                $event->sender->createCommand("SET time_zone = '" . TIMEZONE . "'")->execute();
            }
        ];
Но что-то не всегда работает как надо.
Может есть другой способ?
mcintosh-club.ru - первый мой сайт с использование Yii //
Акустика Sonus Faber Hi-End класса//
Необрезная доска и другие пиломатериалы
Аватара пользователя
maleks
Сообщения: 1985
Зарегистрирован: 2012.12.26, 12:56

Re: Установка Time Zone во всем приложении.

Сообщение maleks »

Временная зона устанавливается в главном конфиге:

Код: Выделить всё

$config = [
    'id' => 'basic',
    'basePath' => dirname(__DIR__),
    'bootstrap' => ['maintenance', 'log'],
    'sourceLanguage' => 'en-US',
    'timeZone' => 'Europe/Kiev',
и еще она есть у компонента formatter
Yii2 universal module sceleton - for basic and advanced templates
Аватара пользователя
porcelanosa
Сообщения: 570
Зарегистрирован: 2010.03.16, 04:31
Откуда: Москва

Re: Установка Time Zone во всем приложении.

Сообщение porcelanosa »

maleks писал(а): 2021.04.12, 08:34 Временная зона устанавливается в главном конфиге:

Код: Выделить всё

$config = [
    'id' => 'basic',
    'basePath' => dirname(__DIR__),
    'bootstrap' => ['maintenance', 'log'],
    'sourceLanguage' => 'en-US',
    'timeZone' => 'Europe/Kiev',
и еще она есть у компонента formatter
Спасибо.
Работает.
А такой вопрос.
дата хранится в datetime формате - что будет при переходе на летнее время?
Все старые даты будут показывать новое время?
Ведь в БД не хранится timezone
mcintosh-club.ru - первый мой сайт с использование Yii //
Акустика Sonus Faber Hi-End класса//
Необрезная доска и другие пиломатериалы
Аватара пользователя
maleks
Сообщения: 1985
Зарегистрирован: 2012.12.26, 12:56

Re: Установка Time Zone во всем приложении.

Сообщение maleks »

Ну вроде ж и логично что старую дату покажет в том времени что она и была.
Какая разница что сегодня перешли на летнее время и в это же время дня часы показывают другое значение?
Но посмотрите, может форматтер что то делает для вашей задачи:
https://www.yiiframework.com/doc/guide/ ... time-zones
Yii2 universal module sceleton - for basic and advanced templates
Аватара пользователя
porcelanosa
Сообщения: 570
Зарегистрирован: 2010.03.16, 04:31
Откуда: Москва

Re: Установка Time Zone во всем приложении.

Сообщение porcelanosa »

maleks писал(а): 2021.04.29, 07:42 Ну вроде ж и логично что старую дату покажет в том времени что она и была.
Какая разница что сегодня перешли на летнее время и в это же время дня часы показывают другое значение?
Но посмотрите, может форматтер что то делает для вашей задачи:
https://www.yiiframework.com/doc/guide/ ... time-zones
Да, вы правы, логично - будем проверять. ;)
Спасибо!
mcintosh-club.ru - первый мой сайт с использование Yii //
Акустика Sonus Faber Hi-End класса//
Необрезная доска и другие пиломатериалы
Ответить