如何在Laravel 5.1中获取上周的数据?

Amr*_*ngh 3 php laravel laravel-5.1

我想在上周的Laravel 5.1中插入数据.目前我正在使用以下查询:

$AgoDate=\Carbon\Carbon::now()->subWeek()->format('Y-m-d');  // returns 2016-02-03
$NowDate=\Carbon\Carbon::now()->format('Y-m-d');  // returns 2016-02-10
$query->whereBetween('created_on', array($AgoDate,$NowDate));
Run Code Online (Sandbox Code Playgroud)

这将返回最近7天的数据,但我需要上周的数据,这意味着它应该从1月31日到2月6日,即前一周返回数据.

注意:在我的情况下,周从星期日开始,到星期六结束.

cod*_*sfy 5

编辑:调整到OP的问题

对于以前的日期使用

$currentDate = \Carbon\Carbon::now();
$agoDate = $currentDate->subDays($currentDate->dayOfWeek)->subWeek();// gives 2016-01-31
Run Code Online (Sandbox Code Playgroud)

同样,你可以得到你的nowDate

$currentDate = \Carbon\Carbon::now();
$nowDate = $currentDate->subDays($currentDate->dayOfWeek + 1); // gives 2016-02-06
Run Code Online (Sandbox Code Playgroud)

调整周开始(星期日/星期一)我认为你可以添加/减去一些天到一天的时间,例如 $currentDate->subDays($currentDate->dayOfWeek + 1 /* or -1 */);

编辑:如评论中所述,您也可以使用startOfWeek()方法而不是subDays()直接为您工作.

  • 或`$agoDate = $currentDate->startOfWeek()->subWeek();` (3认同)