周中周日的碳开始和周六周六的EndOfWeek不起作用

问题描述 投票:0回答:2

我需要选择特定用户的每周最高得分。我正在使用Carbon,并且将Carbon startofWeek强制为SUNDAY,将endOfWeek强制为SATURDAY。

这是我的数据库数据

id  user_id score   created_at            updated_at
43  33      88      2020-02-23 00:00:00     NULL
44  33      15      2020-02-24 00:00:00     NULL
45  33      42      2020-02-24 00:00:00     NULL
46  33      86      2020-02-25 00:00:00     NULL
47  33      100     2020-02-04 00:00:00     NULL 

这是我的代码

     $week = GameScore::select(max('score')->where('created_at', '>=',                                                                                        Carbon::now()->startOfWeek(Carbon::SUNDAY))
            ->where('created_at', '<=', Carbon::now()->endOfWeek(Carbon::SATURDAY))
            ->where('user_id', $user->id)
            ->get();

根据我的数据,我需要得到88分,因为该分数是从2月23日(星期日)开始的,这是本周开始的,直到今天所有其他分数均不超过此分数。

laravel php-carbon
2个回答
0
投票
$en = CarbonImmutable::now()->locale('en_US');


 $ar = CarbonImmutable::now()->locale('ar');



// We still can force to use an other day as start/end of week
   $start = $en->startOfWeek(Carbon::TUESDAY);
   $end = $en->endOfWeek(Carbon::SATURDAY);

var_dump($ ar-> endOfWeek()-> format('Y-m-d H:i'));

为我工作


0
投票

在您的代码中,比较时需要指定日期格式,

Carbon::now()->endOfWeek(Carbon::SATURDAY)->format('Y-m-d H:i:s');
© www.soinside.com 2019 - 2024. All rights reserved.