[PHP-users 24724] Re: mktime の返値について

Masaki Naokawa nao_com21 @ tbg.t-com.ne.jp
2005年 2月 26日 (土) 00:41:08 JST


naokawa@質問者です。

野本様、ご返答ありがとうございます。

> >ただ、mktime の場合は JST など locale に基づいた
> >処理をすると思っていました。
> >実際は以下の処理となっている?
> >   mktime       UTC  ← これで9時間のずれが生じる
> >  gmmktime     UTC
>
> time値はロケールに関係なくgmtみたいです。
> date('Y/m/d h:i:s', 0) => 1970/01/01 09:00:00
> ですからJSTの 1970/01/01 00:00:00 のtime値は0ではないですね。
>
> localeてのはtime値が変わるのではなく、それを読み替える側が
> ずれるものだと。

最初は思い込みで以下のような処理をしていると考えていました。

mktime の場合は、 内部的に基準となるJSTの値を保持(生成)していて、
引数に設定された値を JST と解釈。
内部的な値と引数に指定した値の差分を求めて、結果を出力していると考えていまし
た。
当然,、JSTとJSTの差分なので 1970/1/1 は、 0 が返る。

実際の処理で比較しているかはわかりませんが、
説明にあるように time値(gmt)を用いているための結果だったのですね。

納得しました。ありがとうございます。

-------------------------------------
Masaki Naokawa





PHP-users メーリングリストの案内