laravel - 获取每天两个日期之间的所有订单

标签 laravel laravel-5.1

假设我的数据库中有 3 个订单

  1-1-16
  1-4-16
  1-15-16

我想要做的是显示一个图表,其中包含两个日期之间每天的订单。例如

1-1-16/ 1-5-16

我想要的是

 1-1-16      ,1
 1-2-16      ,0
 1-3-16      ,0
 1-4-16      ,1
 1-5-16      ,0

没有订单时如何获取日期数据? 我有一个带有created_at字段的订单模型,我可以在其中运行查询。

目前,我得到的订单按日期分组,如下所示:

$variable = Order::select('created_at', DB::raw('sum(total) as totals'), DB::raw('sum(shipping) as totalshipping'))->groupBy(DB::raw('DAY(created_at)'))->OrderBy('created_at', 'desc')->get();

这给了我每天的订单,但不返回没有订单的天数

最佳答案

我会这样做:

use Carbon\Carbon;   
$oders = Order::select('id', 'created_at')
    ->get()
    ->groupBy(function($date) {
        return Carbon::parse($date->created_at)->format('d'); // grouping by date
});

对于您没有订单的日期:

$start = new DateTime( '2016-01-01' );
$end = new DateTime( '2016-05-01' );
$interval = DateInterval::createFromDateString('1 day');
$range = new DatePeriod($start, $interval, $end);

foreach ( $range as $day )
  // check if the $orders[i]->created_at !=  $day->format("Y-m-d")

关于laravel - 获取每天两个日期之间的所有订单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36153100/

相关文章:

php - 捕获或修改 Laravel 的错误页面?

php - 在 ProviderRepository.php 第 208 行中找不到提供程序类

php - 如何使用 Laravels spatie/laravel 分析包

sqlite - 如何让 SQLite 在 Laravel 中工作

php - 奇怪的 laravel 安全行为

.htaccess - 删除公共(public)表单 Laravel 网址?

laravel - 使用 Blade 获取 Laravel 5 中当前 URL 的最后一部分

php - 如果数据存在则更新,否则插入新数据

javascript - 使用 javascript 库向服务器发送额外参数以上传文件

linux 服务器创建缓存和 laravel 项目失败