Laravelのドキュメントに載ってないdateメソッド【DB】



管理システムやニュースサイト、JSONを吐き出すAPIシステムを問わず、
全てのシステムでdate( 日付 )の処理は必要になってきます。

そんなdateの取り扱いですが、今回はLaravelの公式ドキュメントに載っていない
date関連のクエリメソッドを紹介します。

* サンプルではquery-builderを使っていますが、Eloquentのモデルでも問題なく動作します。
 

紹介するクエリメソッド 


  1. whereDate()
  2. whereYear()
  3. whereMonth()
  4. whereDay()
  5. latest()
  6. oldest()


whereDate( string $column, string $operator, int $value, string $boolean = 'and' )

このwhereDate() メソッドは文字通り、日付に一致するレコードを返します。
年暦を含む明確な日付が決まっている時に使います。

$q = \DB::table('articles')
          ->whereDate('created_at', '=', '2015-09-10')
          ->get();

dd($q); // 2015年9月10日に一致するレコードを取得


whereYear( string $column, string $operator, int $value, string $boolean = 'and' )

whereYear() メソッドは指定した年に一致したレコードを返します。

$q = \DB::table('articles')
            ->whereYear('created_at', '=', 2015) // *2015-09-10
            ->get();

dd($q) // 2015年に作成されたレコードを取得


whereMonth( string $column, string $operator, int $value, string $boolean = 'and' )

whereMonth() メソッドは指定した月と一致した結果を返します。
その月の統計を採りたい時などに使えますね。

$q = \DB::table('articles')
            ->whereMonth('created_at', '=', 9) // *2015-09-10
            ->get();

dd($q) // 9月に作成されたレコードを取得


whereDay( string $column, string $operator, int $value, string $boolean = 'and' )

whereDay() メソッドは日にちに一致したレコードを返します。
whereMonth() 等と組み合わせて使うことが多いと思います。

$q = \DB::table('articles')
            ->whereDay('created_at', '=', 10) // *2015-09-10
            ->get();

dd($q) // 10日に作成されたレコードを取得


latest( string $column = 'created_at' )

latest() メソッドはタイムスタンプが新しい順にソートしてレコードを返します。
orderBy( 'column', 'DESC' ) と同じ処理です。

$q = \DB::table('articles')
            ->latest('created_at')
            ->get();
dd($q); // 新しい順にソートしてレコードを返す


oldest( string $column = 'created_at' )

oldest() メソッドはlatest() メソッドの反対で、タイムスタンプの古い順に結果を返します。
orderBy( 'column', 'ASC ) と同じ処理です。

$q = \DB::table('articles')
            ->oldest('created_at')
            ->get();
dd($q); // 古い順にソートしてレコードを返す

 

以上6つのdate関連のクエリメソッドでした。

日付関連の加工・抜き出し は結構面倒くさい処理ですが、
以上のメソッドを使えば簡単に行えますね。

公式ドキュメントに載っていない処理などは、
API DOCSなどに載っていたりもするので、ぜひ参考にしてください。

Laravel API DOCS

 

この記事のカテゴリ
プログラミング

この記事のタグ