ChartJS 获取日期名称计数失败- Laravel 9

nuypyhwy  于 2022-11-07  发布在  Chart.js
关注(0)|答案(1)|浏览(145)

对于我的例子,我有一个包含时间戳数据的数据表,调用“created_at”,现在,它想获取时间戳的dayname的计数
所以理想的情况是

我喜欢将其保存在数组中以便将数据传递给may chart.js chart
第一个
但当我尝试运行代码时,它会给出错误

Could not parse '[{"created_at":"2022-06-24 18:50:05"},{"created_at":"2022-06-26 13:24:42"},{"created_at":"2022-06-24 18:50:05"},{"created_at":"2022-06-26 13:24:42"},{"created_at":"2022-06-26 13:24:42"},{"created_at":"2022-06-26 13:24:42"}]': DateTime::__construct(): Failed to parse time string ([{"created_at":"2022-06-24 18:50:05"},{"created_at":"2022-06-26 13:24:42"},{"created_at":"2022-06-24 18:50:05"},{"created_at":"2022-06-26 13:24:42"},{"created_at":"2022-06-26 13:24:42"},{"created_at":"2022-06-26 13:24:42"}]) at position 0 ([): Unexpected character

我喜欢问代码中的错误是什么,我错过了什么吗?
附言。我还想问一下如何将数据传递到图表上。我有一个预制的图表

disho6za

disho6za1#

你可以使用数组reduce()函数来实现这个目的。这是一个php数组函数,你可以在here中找到docs,也可以用于laravel集合

$dayCounts = DB::table('watchlists')
      ->select('created_at')
      ->get()
      ->reduce(function ($car, $item) {
          $day       = Carbon::parse($item->created_at)->format('l');
          $car[$day] = ($car[$day] ?? 0) + 1;
          return $car;
      });

相关问题