WinのタスクスケジューラとPHPとXAMPPでバグ
2014/01/23
PHPをWinのタスクスケジューラで実行するんだけど「時間」がおかしい。
結局は…
Xamppのphp.iniでのタイムゾーンの問題
やりたいのは
・Winのタスクスケジューラでバッチファイルを実行
・バッチファイルでPHPファイルを実行
・PHPファイルはXAMPPのphp.exeを使う
・実行するPHPファイルの内容は「今日」を引数にファイルを書き出し
っていうような感じ。
求めている結果は「今日のファイル」
出力された結果は「昨日のファイル」
調査
諸々ログに出力すれば、早い段階で分かったんだけど…。
まず「今日」じゃなく「昨日」になっているので
・Windowsの時計
をチェック。
例えば「3時」ってのは「午前? 午後?」っていう問題がある。
調べたらWindowsは24時間表記。「午後3時は15時」という風になる。
ということで、Windowsの時計は無問題。
他…どこを調べたら良いか分からずに途方にくれていたら…
「そうだ、ログをだそう!」と気づいた。
ということでPHPファイルに実行日時を出力。
バッチファイル側に標準出力をログに書き出す設定を追加。
すると…実行日時が昨日になっている。
あとはGoogle先生に聞いて…「Xamppのphp.iniのタイムゾーンが~」ってのを見つけて再実行で解決した。
▼まとめ
PHPとXAMPPで時間がずれる