プロになりました

2007年09月30日 | Weblog
2~3日前から私プロになりました・・・Wiiスポーツ(テニス)の(笑)。
よくできてるね、あのゲーム。なかなか楽しいです。

プロになると相手もプロレベルのが出てくるんで、打っても打っても返してくるし(ってか、やつら足速くない?)、単純には勝てなくなってくるのねん。レベルを上げていくとどこまで強いのが出てくるんでしょうね。まぁ、楽しみにして試合に臨むことにしましょう。

PHP5のtime()

2007年09月02日 | CGI/PHP
来たよ、ついに来たよ~。松井大輔招集!オシムさんありがと~!
でも、いきなり呼ばれてすぐ試合でしょ?うまく機能するんでしょうか・・・っていうか、そんなんですぐに評価決められたりしないかとちょっと心配。チャンスは十分に与えてくださいませ~。

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というわけですね。