What determines (how to configure) what format string is used by php PDO driver for values of date and timestamp fields?

后端 未结 1 1314
傲寒
傲寒 2021-01-27 06:22

I have Firebird 3.0 database which have date and timestamp fields and I am using interbase extension (yes - still interbase) and Yii2 framwork in PHP 7.x. And I have Yii code:

相关标签:
1条回答
  • 2021-01-27 07:12

    If you are looking to confgure globally the format in Yii2, there are a few localized settings in your common config you should set:

    Config Example

    'timeZone' => 'America/New_York', // Default PHP date in Eastern.
    //... other config stuff
    'components' => [
        'formatter' => [
            'dateFormat' => 'php:Y-m-d',
            'datetimeFormat' => 'php:Y-m-d H:i:s',
            'decimalSeparator' => '.',
            'thousandSeparator' => ',',
            'defaultTimeZone' => 'UTC',       // DB Source is stored as UTC timezone.
            'timeZone' => 'America/New_York', // When formatter is used, convert to this timezone.
        ],
        //... other config stuff
      ]
    

    Time Checks

    Localized timezones can be a pain to manage, so create a page so you better understand localized formatting. See Yii2 Internationalization Docs

    <?php
    $now = (new \yii\db\Query)->select('NOW()')->scalar(Yii::$app->db);
    ?>
    <table class="table">
        <tr>
            <th>PHP UTC dateTime (+4 Hours):</th>
            <td><?= gmdate('Y-m-d H:i:s')?></td>
        </tr>
        <tr>
            <th>PHP local dateTime:</th>
            <td><?= date('Y-m-d H:i:s')?></td>
        </tr>
        <tr>
            <th>PHP local timeZone:</th>
            <td><?= date_default_timezone_get() ?></td>
        </tr>
        <tr>
            <th>Database Time Raw (expected UTC):</th>
            <td><?= $now ?></td>
        </tr>
        <tr>
            <th>Formatter -> UTC to local dateTime:</th>
            <td><?= Yii::$app->formatter->asDatetime(gmdate('Y-d-m H:i:s')) ?></td>
        </tr>
        <tr>
            <th>Formatter -> realtiveTime from UTC:</th>
            <td><?= Yii::$app->formatter->asRelativeTime(gmdate('Y-m-d H:i:s')) ?></td>
        </tr>
    </table>
    
    0 讨论(0)
提交回复
热议问题