php 数组 时间戳排序,php – 按时间戳排序Summed Collection
在之前的一篇文章中,我詢問獲得的總數最終是Laravel中值的總和().然而,當數據返回時,它只輸出總和而沒有通常也會??輸出的任何其他信息(例如:關系,時間戳等).通常情況下,如果我只是將所有內容的總和作為一個數字,這將不是問題.
下面是我正在重新創建的視覺的硬編碼示例,下面是創建它的數據.
data: [{
period: '2016-04',
views: 2666,
}, {
period: '2016-05',
views: 2778,
}, {
period: '2016-06',
views: 4912,
}, {
period: '2016-07',
views: 3767,
}, {
period: '2016-08',
views: 6810,
}, {
period: '2016-09',
views: 5670,
}, {
period: '2016-10',
views: 4820,
}, {
period: '2016-11',
views: 15073,
}],
因此,如果不編寫循環,那么在任何給定時間段內獲取所有帖子的每日訪問量的最佳方式是什么.基本上,一個用戶擁有很多帖子,每個帖子都有很多訪問者,所以下面是我如何得到它們的總和,但正如你在上面看到的,我需要根據訪問者表中的created_at時間戳記每天的總和.
return Post::where('user_id', Auth::user()->id)->withCount(['visitors' => function($query)
{
$query->where('created_at', '<=', Carbon\Carbon::now())->where('created_at', '>=', Carbon\Carbon::yesterday());
}])->get()->sum('visitors_count');
解決方法:
我不熟悉Laravel.所以我可以告訴你如何在mySql中編寫查詢,也許你可以翻譯:
你使用DATE()來截斷時間部分,這樣每個人都有相同的日期yyyy-mm-dd,那么你可以將這些天的GROUP BY一起歸結為COUNT(訪問者)
您需要參數@user_id,@ start_range,@ end_range
小心你如何設置@end_range.如果您使用@end_range = 2016-11-17’那么’2016-11-17 10:10:00’將超出該范圍.所以你們應該使用2016-11-17 23:59:59
SELECT DATE(created_at), count(visitors)
FROM posts
WHERE user_id = @user_id
AND created_at BETWEEN @start_range
AND @end_range
GROUP BY DATE(created_at)
標簽:php,mysql,laravel,eloquent
來源: https://codeday.me/bug/20190701/1352108.html
總結
以上是生活随笔為你收集整理的php 数组 时间戳排序,php – 按时间戳排序Summed Collection的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 杭电oj第1000题—— A + B P
- 下一篇: 色光三原色RGB相加减