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)
# 戻る