[PHP-users 5763] Re: 日付について。

BAC php-users@php.gr.jp
Thu, 28 Feb 2002 14:45:43 +0900


BACです。

On Thu, 28 Feb 2002 13:16:50 +0900
kaga <kaga@procen.co.jp> wrote:

> 1年後というのは有効期限(定期と同じ)の事です。
> 
> $datTime = time();
> $datYear = date("Y", $datTime);
> $datMonth = date("m", $datTime);
> $datDay = date("d", $datTime);
> 
> $datDateTime = date("Y-m-d", mktime(0,0,0, $datMonth, $datDay - 1, $datYear + 1));
> 
> このように有効期限を取得しようと考えています。
> これで宜しいのでしょうか?

 質問の意図がちょっとよくわからないのですが、それでよいかどうかは試せば
わかる話ですよね。試してダメだったのであればまだ質問の意図がわかりますが、
「これで宜しいのでしょうか」という質問はどうなんでしょう。

 メーリングリストで「宜しいです」と言われてもそれには何の保証もありませ
ん。それにもしこれがまずかった場合にあとで責められることになるのも嫌でしょ
うから、「それでいいですよ」と言いたがる人はあまりいないと思います(せい
ぜい、「私もそうしてます」程度に留めるでしょうね)。
 結局、「宜しい」か「宜しくない」かはkagaさんが判定することです。

 と、これだけだとナンなので、ではどうやってテストすればよいかですが、こ
の場合だと、$datTimeをtime()からとらずに366日分のループで回してテストす
るなどの方法になると思います。端折ることができる部分が大部分ですが、他人
に保証してもらうよりはよっぽど有意義です。

 2004/02/29の1年後が何日になるのが正しいのかは、kagaさん以外には分から
ない話だと思いますので、mktime()の自動調整が意図するところに一致している
かどうかは誰も判別できないのではないでしょうか。

--------------------------------------------
BAC (bac@dev-nul.com)