来たよ、ついに来たよ~。松井大輔招集!オシムさんありがと~!
でも、いきなり呼ばれてすぐ試合でしょ?うまく機能するんでしょうか・・・っていうか、そんなんですぐに評価決められたりしないかとちょっと心配。チャンスは十分に与えてくださいませ~。
PHPにtimeって関数があるよね。あれってPHP4だとローカルタイムを返すと思うんだけど、合ってる?
だから、例えば
$time_diff = time() - gmmktime() + 9*3600;
なんて実行すると、time()は日本にあるサーバなら日本時間、gmmktimeはGMT(グリニッジ標準時)を返すんで、その差に日本時間とGMTの時差9時間を(秒で)足してやると、$time_diff(時差)= 0という結果になります。
でも、うちのローカルにある(MAMPに入ってるやつね)PHP5だけは、$time_diff = 32400となります。32400って9*3600のことだから、つまり、time()はこのときGMTを返してるってことになります。これって、PHP5の仕様なんですかね?
他にPHP5のサーバで試せる環境がないんで、そうなのかなぁって思ってるだけで、PHPのバージョンの違いか設定の違いかはわかりません。ちなみに、タイムゾーンはAsia/Tokyoになってますんで、その辺の設定のせいでもないようです。
でまぁこういう場合、上の計算式はどうしたらいいかというと、
$time_diff = date("Z") - 9*3600;
とすればOKです。date("Z")は、ローカルな時刻のGMTとの時差を秒で直接返してくれるので、これ一つでOKというわけですね。