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, ) )
このように不等号が書けることを覚えておきましょう。
以上です。