[Tep-j-general] Re: アカウント情報

Back to archive index

Tsukasa Sakaguchi t-sak****@brain*****
2003年 1月 15日 (水) 12:21:09 JST


さかぐち@brainheartsです。こんにちは

参考になるかどうかわかりませんが、気になる点を1つ。

From: TAMURA Toshihiko <tamur****@bitsc*****>
Date: Wed, 15 Jan 2003 10:08:47 +0900
Subject: [Tep-j-general] Re: アカウント情報

> return date(DATE_FORMAT, mktime($hour, $minute, $second, $month, $day,
> $year));

mktime関数は、1970年1月1日0時0分0秒から、指定された時刻までの経過時間を返す関数
です。指定された日付が、日付として妥当でない場合、日付として正しくなるように、
自動修正して経過時間を求めるようです。

引用順を変えますが、今回のケースだと、

> こちらのサーバーでハードウェア時間を1970年01月15日とかに設定して(システム時
> 間は現時間のまま)、メンバー新規登録をしてみましたところ、1970/01/01以降の生
> 年月日は正常に入力できましたが、1960/01/01は見事に1970/01/01になってしまいま
> した。

ということなので、おそらくmktime関数が 0 を返しているように思うのですが、
いかがでしょう。

phpがある程度わかるのであれば、受け取った入力データがどのように変わっていくのか、
追いかけてみるのが、解決への近道です。

例えば、一時的に

> return date(DATE_FORMAT, mktime($hour, $minute, $second, $month, $day,
> $year));

を

return $year.'/'.$month.'/'.$day.'_'.$hour.'/'.$minute.'/'.$second.'_'.
mktime($hour, $minute, $second, $month, $day, $year);

とすれば、渡した時刻、戻ってきた経過時間が生年月日に表示されるはずです。
"1960/01/01_0:0:0_-????(計算してください)"と表示されていなければ、
ここ以外、例えば 1960/01/01 を 年月日に分解するところに原因があることに
なります。

というかんじで、どこに問題があるのか、地道に確かめるのがよろしいかと。

-- 
BrainHearts Corp.
Tsukasa Sakaguchi / t-sak****@brain*****
Tel. 045-290-7561



Tep-j-general メーリングリストの案内
Back to archive index