日付関連メモ|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 オブジェクトを一つしか必要としません。

参考文献

  • [PHP]当月月末の年月日を取得(翌月1日も)する方法メモ | HappyQuality :
    http://www.happyquality.com/2009/03/24/885.htm
  • MysqlのDATE_FORMAT関数をもっと早く知っていれば | 株式会社M&Aバンク :
    http://ma-bank.com/item/604
  • フォーマット :: Time :: 主要なヘルパー :: マニュアル :: 1.3コレクション :: The Cookbook :
    http://book.cakephp.org/ja/view/1471/Formatting

関連記事

スポンサードリンク

Comments

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です