DEVELOPERS BLOGデベロッパーズブログ

  1. HOME > 
  2. 加藤 正人のデベロッパーズブログ > 
  3. CakePHP3.6.2 のタイムスタンプ調整 (XSERVER の場合)

加藤 正人のデベロッパーズブログ

加藤 正人

氏名
加藤 正人
役職
多分SE
血液型
秘密
出没
美味しいもののあるところ
特色
タヒチ大好き。ちょいメタボ。

加藤 正人

2018/08/01

CakePHP3.6.2 のタイムスタンプ調整 (XSERVER の場合)

 

CakePHP 3.6.2 で気づいたのだが、既定値で運用するとデータベースへの日時 (DateTime) の保存は UTC に変換されて保存される。

読み取りの際はそのまま created や modified フィールドの値が返ってくるので、日時がずれてしまう。

これは、CakePHP 3.6.2 の {CONFIG}/app.php の ’APP' 設定で、

'defaultTimezone' =>env('APP_DEFAULT_TIMEZONE',  'UTC')

となっているのが原因と考えられる。

取り敢えずこの値を

'defaultTimezone' => env('APP_DEFAULT_TIMEZONE', 'JST')

とし、また念のためその直前の 'defaultLocale' も

'defaultLocale' => env('APP_DEFAULT_LOCALE', 'ja_JP')

に変更しておくことで表示側もデータベース上も JST で記録されるようになる。

これは、XSERVER の PHP7 がタイムゾーンとして JST を認識するためと思われる。(通常の LAMP 環境では既定値のタイムゾーン情報には JST は含まれていないので注意。)

なお、ネット検索すると 'JST' とした箇所を PHP 向けの 'Asia/Tokyo' とする方法がヒットするが、この方法を使用すると 'defaultTimezone' 設定がデータソースでも使用されるため、データベース側 (MySQL 等が 'Asia/Tokyo' を解釈できないとコネクションエラーとなって接続できない。データベース側のタイムゾーンリストを修正できるのであればよいが、共用サーバー等で勝手に変更できない場合は 'Asia/Tokyo' は使えない点に注意。)

関連タグ: CakePHP3  XSERVER 

関連エントリー

CakePHP3 でタイムゾーン変換

バージョンを指定して CakePHP をインストールする

CakePHP サイトの移転時の注意

CakePHP3 のアソシエーションで、紐づけ用フィールドを指定する

CakePHP3 のコマンドライン実行

CakePHP3 の Virtual Field と accessor (Getter)

CSRF token mismatch

2019/07/04
CSRF token mismatch

CakePHP3 で created と modified に日付が自動付与されない場合のメモ

CakePHP3 で

CakePHP3 の JSON 出力でエラー

CakePHP3 のミューテータで書き換えたデータが保存されない件

CakePHP3 で DebugKit が表示されない

最新版 composer.phar のインストール

PHP 7.x で CakePHP 3.x を使う

Remi's PHP5.6 と intl モジュール

X2 と CakePHP 3.x

2017/05/23
X2 と CakePHP 3.x

CakePHP3 の便利機能

CakePHP3 と SQLite

2017/02/20
CakePHP3 と SQLite

CakePHP3 でテーブル不使用フォームのバリデーション

CakePHP3 のファインダーメソッド

CakePHP 3.x の accessor と mutator 【その2】

CakePHP 3.x の accessor と mutator

XSERVER X10 に CakePHP 3.x をインストールする

XSERVER で CakePHP 3.x が Fatal error

CakePHP 3.x インストールメモ

XSERVER と X2

2015/07/25
XSERVER と X2

Composer メモ

2015/06/13
Composer メモ

共用サーバに MeCab をインストールする