7/12(木)
★時差?!
今日は時差にはまった。
Windowsで日付をmktime()してエポックタイムに直して、86400秒足してlocaltime()
で、また、戻すというような関数を書いていたのが、突然うまく動かなくなったので
ある。
元々の意図は1日後の日付を求めることであったが、同じ日になるのだ。
いろいろ調べていると、どうやら、環境変数TZをJST-9のように設定しているとおか
しな動きをすることがわかった。
どうも、夏時間として動いているような雰囲気である。
実は、mktimeに渡すtm構造体のtm_isdstが初期化されていなかったのが原因であっ
た。
こいつに、きちんと0を入れておかないと、TZ環境変数を設定したときに夏時間に
なってしまうみたいだ。
うーん。はまったぞ。
ちなみに、わざわざ86400秒足さなくても、tm_mdayに1足してmktime()を呼べば、勝
手に計算してくれるようです。
・mktimeでtm_isdstを初期化しなかった場合に9時間ずれたのですが、 [2002/12/5 17:21:35] (by 名なしさん)
・すいません。途中で投稿してしまいました。<br>mktimeでtm_isdstを初期化しなかった場合に9時間ずれたのですが、 夏時間になるとどうして9時間ずれるのでしょうか?<br>1時間ずれるならわかるのですが。。 [2002/12/5 17:23:26] (by oyama)
# 戻る