【PHP】取得した現在日時が9時間ずれているときは

PHPでdateやstrtotimeで取得した現在日時が9時間ずれているときは、
日本ではないタイムゾーンが設定されている可能性があります。

まず確認すべきは php.iniのdate.timezoneの設定です。

になっていない場合は修正します。

もしレンタルサーバーなどの制限でphp.iniが編集できない場合は、コード上で

でタイムゾーンを設定できます。

ほとんどの場合はこれで解決なのですが、
たまに、外部ライブラリを使用していると
上記のようにタイムゾーンを指定しているにも関わらず
時間のずれが直らない場合があります。

そんなときは、strtotimeでずれた分だけ時間をずらし返してやりましょう。

スマートではないかもしれませんが
こういう臨機応変な対応もときにはアリだと思います。