うめぼしジョイスティック - ivoice

CakePHP、JavaScript、jQuery等のプログラミングについて書いていきます 思考は、うめぼしのように硬く、そして柔らかく。

CakePHP2.xで、日付時刻(年月日)とcreatedを比較してデータを取得する方法

『7日以内のデータだけ取りたい…』等々思ったことはありませんか?

今回はそのような場合にデータを取る方法です。

結論からいうと、変数に、createdと同じ構造のデータを入れて、その後に findのconditionsで時刻で条件指定をすればOKです。

サンプルコード

 $past = date('Y-m-d H:i:s', mktime(date('H'), date('i'), date('s'), date('m'), date('d')-7, date('Y')));
//7日前の年月日時刻を取得

 $sample_get = $this->MODEL->find('all',
                                        array(
                                        'conditions' => array(
                                                'Model.created >' => $past, //createdが$pastよりも大きい場合。(つまり過去7日の場合)、という条件指定
                                                             )
                                            )
                                  );

例えばこれは、7日以内のデータを取得するコードです。

createdは

2015-08-12 10:13:43

このように 年月日が ハイフン ( - ) 区切りになっており、時間が コロン (  : )区切りになっているので 上の式では、

date('Y-m-d H:i:s'...

の部分でこの形に成形しています。(場合によってご自身で設定しているものと合わせて下さい。)

あとはこれをconditionsで比較してあげれば終わりです。 conditionsの条件式で

                                      array(
                                            'conditions' => array(
                                                'Model.created >' => $past, 
                                                )
                                            )

このように不等号が書けることを覚えておきましょう。

以上です。