PR

日付関連メモ|PHP|CakePHP|MySQL

覚えておくと便利そうな日付関連操作のメモ。

※PHPは5.3から日付関連の関数が強化されているので、ここに記載されているよりやりやすい方法が別にあるかもしれない。

スポンサードリンク

月立ち(PHP)

date(“Y-m-1”);

月末(PHP)

date(“Y-m-t”);

翌月の月立ち(PHP)

date(“Y-m-d”, strtotime(date(“Y-m-t”)) + (60 * 60 * 24));
date(‘y-m-1′,strtotime(‘+1 month’));

集計(MySQL)

※ time が日付フィールド

年別

SELECT id, DATE_FORMAT(time,’%Y年’) as time1 FROM table1 GROUP BY time1

月別

SELECT id, DATE_FORMAT(time,’%Y年%m月’) as time2 FROM table1 GROUP BY time2

日別

SELECT id, DATE_FORMAT(time,’%Y年%m月%d日’) as time3 FROM table1 GROUP BY time3

CakePHP(マニュアルより引用)

daysAsSql( $begin, $end, $fieldName, $userOffset = NULL )

daysAsSql は「($field_name >= ‘2008-01-21 00:00:00’) AND ($field_name <= ‘2008-01-25 23:59:59’)」という文字列を返します。これはある日時から別の日時の間のレコードを探すときに便利です。

dayAsSql( $date_string, $field_name )

dayAsSql は daysAsSql と同じフォーマットの文字列を作成しますが、 date オブジェクトを一つしか必要としません。

参考文献

コメント