duananyantan04633 2013-12-18 17:07
浏览 81
已采纳

如何过滤laravel的时间戳?

I want to filter the result of the records within the period, but i can't find any example of how to use the where clause to get the exact range of data.

These are the data posted from form:

[monthRangeStart] => 12

[yearRangeStart] => 2013

[monthRangeEnd] => 12

[yearRangeEnd] => 2013

and the following is the format of updated_at timestamp

2013-12-18 07:22:34

How should i finish the line of code

$trans = Transaction::where('updated_at', )
  • 写回答

3条回答 默认 最新

  • douqiu9529 2013-12-18 18:31
    关注

    In my opinion if you decided to use some framework you should use tools it provides in order to create better solutions. Laravel has very beautiful Carbon class for date manipulation. This is solution I came to:

    $trans = Transaction::whereBetween('updated_at', [
        \Carbon\Carbon::createFromDate(Input::get('yearRangeStart'), Input::get('monthRangeStart'))->startOfMonth(),
        \Carbon\Carbon::createFromDate(Input::get('yearRangeEnd'), Input::get('monthRangeEnd'))->endOfMonth()
    ])->get();
    

    In this case you will never go wrong with number of days in any specific month.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?