2009年05月29日
PHPで一ヶ月前の日時を取得する方法
沖縄のisoです。
最近、一日一回は激しい雨が降り、沖縄のダム貯水率の向上に寄
与してくれそうな予感です。
今日は、PHPで一定の期間を集計する際によく使う日時関数につい
て書きます。一ヶ月前の日時なども、PHPの関数を使えば簡単に得
ることができます。
たとえば、5月29日に「2月分」の売上げを集計する場合、3ヶ月前の
1日~末日までの期間を対象にデータを抽出します。
3ヶ月前の末日を取得する際、今年は2月28日までしかなかったので
今日、strtotime()関数を使って「3ヶ月前」と指定すると、「3月1日」に
なってしまい、2月の末日にはなってくれません。
最近、一日一回は激しい雨が降り、沖縄のダム貯水率の向上に寄
与してくれそうな予感です。
今日は、PHPで一定の期間を集計する際によく使う日時関数につい
て書きます。一ヶ月前の日時なども、PHPの関数を使えば簡単に得
ることができます。
たとえば、5月29日に「2月分」の売上げを集計する場合、3ヶ月前の
1日~末日までの期間を対象にデータを抽出します。
3ヶ月前の末日を取得する際、今年は2月28日までしかなかったので
今日、strtotime()関数を使って「3ヶ月前」と指定すると、「3月1日」に
なってしまい、2月の末日にはなってくれません。
echo date("Y-m-d",strtotime("-3 month"));
PHPで「Xヶ月前」を取得するときには、mktime()関数を使います。
「Xヶ月前の末日」を得るには、「X+1ヶ月前」の「0」日のような指定
をします。
さらに、「Xヶ月前の1日」を得るには、「Xヶ月前」の「1」日のような指
定をします。
「Xヶ月前の末日」を得るには、「X+1ヶ月前」の「0」日のような指定
をします。
echo date("Y-m-d", mktime("0","0","0",date("m")-2,0,date("Y")));
さらに、「Xヶ月前の1日」を得るには、「Xヶ月前」の「1」日のような指
定をします。
echo date("Y-m-d", mktime("0","0","0",date("m")-3,1,date("Y")));
Posted by シーポイントシステム開発 at 14:20
この記事へのコメント
上記について
2010/01の3か月前とかのように年をまたぐ場合に正しく動作しないと思います。
2010/01の3か月前とかのように年をまたぐ場合に正しく動作しないと思います。
Posted by sinh at 2010年08月10日 12:00