ソフトウェア開発者の日常

こだわりなく書きたいことを書いていきます。

PHP:月末の日付の求め方

最近もわからなくなって、昔のソースコードを探してた。

f:id:AJYA:20120730212856j:plain

photo credit: pvera via photo pin cc

 

プログラムを作っていると、データを抽出するときに月末の日付が欲しいことがある。

if文かSQLの条件で、

 日付データ < 2012/8/1

とすればいいのはわかっているが、やはり月末というのが意識したいので、

 日付データ <= 2012/7/31

としたい。

 

今回もそういう意識があって、月末の日付を求めたくなったが、なんとなくしか覚えていなくて昔のソースコードから処理を探してきた。

 

方法自体は簡単で、mktime関数で日付を0にすると、前月の末日を指定したことになるので、

$dt = mktime(0, 0, 0, '8', 0, '2012');
$dateStr = date("Y", $dt) . "/" . date("m", $dt) . "/" . date("d", $dt);

とすれば、$dateStrには"2012/07/31"が代入される。

 

mktime関数は日付の有効性チェックをしてくれるので

$dt = mktime(0, 0, 0, 12+2, 0, '2012'); $dateStr = date("Y", $dt) . "/" . date("m", $dt) . "/" . date("d", $dt);

とすれば、$dateStrには"2013/01/31"が代入される。

 

関数の機能を知っていれば簡単に実現できるので、できるということを知っておきたい。