PHPでシステム時刻と違う結果が出るとき

PHPをタイマー系の自分用バッチで使っていて、システムロケールと違う結果が出ると困りますよね。

もちろん、日本だけで使うバッチなら、設定ファイルを日本専用に書き換えてしまえば良いのですが、旅行先などで違う時間を見ていたとか、飛行機に乗り遅れる原因になります。(なりました。)

MacOS10.14 + PHP7.3で確認したところ、以下の設定にしておくと、自動的にシステムのロケール見てくれました。マニュアルによればWindowsでもOKとのこと。

<?php

setlocale(LC_ALL, ''); // システム環境設定を読む