ただいま私的にはフィッシングのオフシーズン中なので、ちょっと時間があったのでPHPというWebサーバー用のプログラミングをいじってみた。
注)ちょっと時間がある = 暇とは言いたくないのだが (;^_^A
XAMPP(ザンプ)といえば、ホームページをある程度自分で作られる方には馴染みがあるかも知れませんが、その他の方には…(;^_^A
昔は掲示板などのGCIの動作チェックに使う程度でしたが、今ではWord Pressのサイトをローカル環境で構築したりにも使っている。
しかし、PHPは必要に応じてググってみて分かったら少しカスタマイズする程度。
で、PHPでは初歩の初歩
echo date("Y-m-d H: i:s");
としたところ、8時間遅い時間を表示するではありませんか。
最初にPHPでの時間のズレをググってみると補正のやり方がヒット。
最初に見たのがPHPの中での時間等の補正
echo date("Y-m-d H: i:s" , strtotime("8 hour"));
とすれば現在値を表示する。しかし、これでは8時間足しているだけで小手先の誤魔化し?そのままネットサーバーにアップしたらダメじゃん?!
date_default_timezone_set('Asia/Tokyo');
と最初に書けばいいとのこと。
しか~し?
時間がズレるとしたら普通はWeb標準のイギリスのグリニッジ標準時で9時間のズレじゃね?…と思っていた。こいつはいったいどこの時計を見に行ってんだ?www
で、「XAMPP 時計 8時間」でググると「XAMPPのPHPの時刻合わせ」というページが最初にヒット。
C:¥xampp¥php¥php.iniです。バージョンや環境によって違いはありますが、1044行目あたりにある date.timezoneを~
とあり、
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Europe/Berlin
上記のphp.iniのファイル中の「Europe/Berlin」を「Asia/Tokyo」に書き換えるというもの。
実際にファイルを開いて検索すると946行目に
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
;date.timezone =
とある。
ちょっと行数が違いすぎるし、「Europe/Berlin」が空欄でしかもコメントアウトしてあるじゃん?と思いつつも「Asia/Tokyo」を書きたしてコメントアウトを外して保存、XAMPPを再起動して日時を表示させても変わらない?
私のXAMPPのバージョンがWindows版の 7.2.7で、PHP Versionも7.2.7なので参考にした記事がめっちゃ古かった(;^_^A
php.iniのファイルをさらに「date」のキーワードで探すとファイルの最後の方(1934行目)に
[Date]
date.timezone=Europe/Berlin
を発見。
ここを「Asia/Tokyo」に書き換えたらデフォルトの時間が日本時間にうまく変更できました。
めでたし、めでたし・・・
しかし、なんでXAMPPのデフォルトの時間が、グリニッジ標準時ではなく「Europe/Berlin」ドイツのベルリンなのか非常に気になる。
更にググってみると、Webサーバープログラムの標準ともいえる「 Apache(アパッチ)」の共同創設者の一人Oswaldという人が、XAMPPの開発にもたずさわりベルリンを拠点に活動していたらしい…そのためか?
…というような感じでしょうか?
※XAMPPを配布しているApache Friendsという会社自体はアメリカのサンフランシスコにあるようです。