【问题标题】:Laravel determine the date from database if MONDAY-SUNDAY如果 MONDAY-SUNDAY,Laravel 从数据库中确定日期
【发布时间】:2020-04-01 16:03:32
【问题描述】:

互联网上的好朋友!

我有一个查询每周从数据库中获取数据。现在我可以得到如下图所示的结果。

查询:

         return static::selectRaw('SUM(total) as total')
            ->selectRaw('COUNT(*) as total_orders')
            ->whereBetween('created_at', [now()->startOfWeek(), now()->endOfWeek()])
            ->whereNotIn('status', ['canceled', 'refunded'])
            ->selectRaw('EXTRACT(DAY FROM created_at) as day')
            ->groupBy(DB::raw('EXTRACT(DAY FROM created_at)'))
            ->orderby('day')
            ->get();

在我的控制器中

        return response()->json([
            'data' => Order::salesAnalytics(),
        ]);

结果

问题是如何将它显示给我的chartjs,如下图所示。

【问题讨论】:

    标签: mysql laravel chart.js


    【解决方案1】:

    您可以使用此数组从日期编号中确定日期名称

    days_numbers = [
     0 => 'saturday',
     1 => 'sunday',
     2 => 'monday',
     3 => 'thuesday',
     4 => 'wednesday',
     5 => 'thursday',
     6 => 'friday',
    ];
    

    您可以使用它来获取日期索引:

    $day_index = fmod($day_number, 7);
    

    【讨论】:

    • if( fmod($day_number, 7) === 1 || fmod($day_number, 7) === 2) { echo '今天是星期天还是星期一'; }
    • 我的意思是如果日期是星期一、星期二、星期三、星期四、星期五、星期六或星期日
    • 在 php days_numbers[fmod($day_number, 7)] 中使用这个或者在 mysql MOD(day, 7) 中使用这个命令
    • 使用数据:[{x:'2016-12-25', y:20}, {x:'2016-12-26', y:10}] 来自此页面:@987654321 @
    • 看到这些天数是内置在 rdbms 中的,这似乎有点多余。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-27
    • 2017-05-11
    • 1970-01-01
    • 2017-12-24
    • 1970-01-01
    • 2021-10-01
    • 1970-01-01
    相关资源
    最近更新 更多