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