#mysql #laravel #laravel-8 #php-carbon
#mysql #laravel #laravel-8 #php-carbon
Вопрос:
Я хочу получить целую неделю с использованием определенных дат. Например, у меня есть единственная дата 3 февраля 2021 года, среда. Теперь я хочу получить начало недели и конец недели, используя Eloquent и Carbon, чтобы результат был таким.
1 февраля 2021 г. — Понедельник
2 февраля 2021 г. — Вторник
3 февраля 2021 г. — Среда — Это мой пример даты
4 февраля 2021 г. — Четверг
5 февраля 2021 г. — Пятница
6 февраля 2021 г. — Суббота
7 февраля 2021 г. — Воскресенье
Комментарии:
1. начало недели — суббота?
2. Я не вижу, что это имеет какое-либо отношение к MySQL
Ответ №1:
Предполагая, что вы сохраняете примерную дату $date
. Вы можете попробовать этот код ниже
$now = Carbon::parse($date);
$weekStartDate = $now->startOfWeek()->format('Y-m-d H:i');
$weekEndDate = $now->endOfWeek()->format('Y-m-d H:i');
Ответ №2:
Вы можете сделать это в своем запросе :
$query = "2021-02-03"
$date = Carbon::parse($query);
$startWeek = $date->startOfWeek()->format('Y-m-d');
$endWeek = $date->endOfWeek()->format('Y-m-d');
$q = User::where('date', '>=', $startWeek)
->where('date', '<=', $endWeek)
->get();
Ответ №3:
$date = CarbonImmutable::parse('2021-02-03');
foreach ($date->startOfWeek()->daysUntil($date->endOfWeek()) as $day) {
echo $day->format('F j, Y - l') . "n";
}
Выдает ваш точный ожидаемый результат:
February 1, 2021 - Monday
February 2, 2021 - Tuesday
February 3, 2021 - Wednesday
February 4, 2021 - Thursday
February 5, 2021 - Friday
February 6, 2021 - Saturday
February 7, 2021 - Sunday