[PHP-users 25200] Re: 1 ヶ月前の日付の取得について
菊澤 正明
kikuzawa @ cyber-coo.com
2005年 3月 30日 (水) 15:08:15 JST
菊澤 と申します。
1ヶ月前の定義がはっきりしていないことが、原因だと思われます。
定期券の例が出ていましたが、1ヶ月間有効の定期券の場合、
・開始日から翌月開始日の前日までを有効期間とします。
・翌月開始日の前日が翌月月末を越える場合、翌月月末までを
有効期間とします。
・開始日が1日の場合、当月月末までを有効期間とします。
となっているところが多いかと思われます。
1ヶ月間有効の定期券の場合、有効期間は、下記のようになります。
1/31〜2/28
2/28〜3/27
コードで書くと
$today = time();
$start = mktime(0, 0, 0, date("m", $today), date("d", $today), date("Y", $today))
$end = mktime(0, 0, 0, date("m", $start) + 1, date("d", $start) - 1, date("Y", $start));
$last = mktime(0, 0, 0, date("m", $start) + 1, 0, date("Y", $start));
// 翌月末を越えるかどうかのチェック
if ($end > $last) {
$end = $last;
}
1ヶ月前ということとは、ちょっと違いますけど...。
--------------------------------------------
菊澤 正明 mailto:kikuzawa @ cyber-coo.com
(有)サイバー・クー http://www.cyber-coo.com
phone.03-5785-4658 fax.03-5785-4659
PHP-users メーリングリストの案内