2017-02-21 9 views
1

私はテーブルの誕生日を持っています。 誕生日のフィールド:id | user_id |誕生日(date型:YMD) データのURLの$ _GET [ '日付']からはBirthdaysControllerで '1991年9月10日' である私は、クエリデータベースからデータ型日付を取得するには?

$arrayDate = $this->Birthday->find()->where(['birthday' => $_GET['date'] ])->all(); 

を持っているが、私は「フォーマットで検索したいです1991- 09 '。 ご協力いただければ幸いです。 私を助けてください!

+0

あなたが求めていることを正確に伝えるのは少し難しいです。あなたが直面している実際の技術的問題についてより具体的にお試しください。 ps、CakePHPでスーパーグローバルを直接使用しないでください。** [リクエストオブジェクト]の対応するアクセスメソッドを使用してください(https://book.cakephp.org/3.0/en/controllers/request-response.html#query-string-パラメーター)**。 – ndm

答えて

0

あなたがしたいことは、与えられた年の誕生日のある人を見つけることだと思いますか?

まず、この$this->request->query('date');のようなGETパラメータを使用し、$_GET['date']のように使用しないでください。

あなたはこのように日付を変換するので、あなたは月の最初と最後の日を使用していることを確認する、との機能を使用する必要があります:

$startDate = $endDate = new \DateTime($this->request->query('date')); 
$startDate->modify('first day of this month'); 
$endDate->modify('last day of this month'); 

そしてあなただけに持っています

$arrayDate = $this->Birthday 
    ->find() 
    ->where(function($exp) { 
     return $exp->between('birthday', $startDate->format('Y-m-d'), $endDate->format('Y-m-d'), 'date'); 
    }); 

これは検索条件の間にこれを使用する他の方法ですが、thisを読む必要があります。

関連する問題