углеродное начало недели, воскресенье и конец субботы не работает - PullRequest
1 голос
/ 25 февраля 2020

Мне нужно выбрать конкретного пользователя еженедельный рекорд. Я использую Carbon, и я принудительно запускаю Carbon startofWeek в воскресенье, а endOfWeek в субботу.

Вот мои данные БД

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, потому что этот результат получен 23 февраля в воскресенье, которое начинается в эти недели, и до сегодняшнего дня все остальные показатели не превышают этого.

Ответы [ 2 ]

0 голосов
/ 25 февраля 2020

В вашем коде необходимо указать формат даты при сравнении,

Carbon::now()->endOfWeek(Carbon::SATURDAY)->format('Y-m-d H:i:s');
0 голосов
/ 25 февраля 2020
$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 ('Ymd H: i'));

У меня работает

...