gpt4 book ai didi

php - 查询 Laravel 深夜营业时间

转载 作者:行者123 更新时间:2023-11-29 17:55:35 25 4
gpt4 key购买 nike

我有一个营业时间表,我想进行查询,以便获得某个地点的关门时间。

这是 OpeningHoursTable 的实例和我的代码当前查询代码,这不起作用,但是您可能会得到一个想法...

例如day_id = 3,

营业时间为 11:30 至 14:30。 17:30至次日00:00。

我希望输出第 4 天的 0000

如何查询?

数据库条目:

location_id | day_id | opened | closed

81 1 1130 1430
81 1 1730
81 2 0000
81 3 1130 1430
81 3 1730
81 4 0000
81 4 1130 1430
81 4 1730
81 5 0000
81 5 1130 1430
81 5 1730
81 6 0000
81 6 1130 1430
81 6 1730
81 7 0000
81 7 1130 1430
81 7 1730
81 1 0000

我对 Location.php 中的代码的“想法”:

public function closesTodayAt($closeTo = 2000)
{
$thisDay = today()->dayOfWeek + 1;

$time = $this->openinghours()->where('day_id', $thisDay)->where('closed','!=', "")
orWhere()->get();

if ($time->first()->closed < $closeTo ) {
#code
}
if ($time < $closeTo ) {
$nextDay = today()->addDay(1)->dayOfWeek +1;
$time = $this->openinghours()->where('day_id', $thisDay)->where('opened','!=',"")->first()->opened;
}
if ($time === "0000") {
# code...
}
$time = str_split($time,2);
$time = implode(":", $time);
return $time;
}

这是数据库的另一部分:

94  1   1100    
94 2 0100
94 2 1100
94 3 0100
94 3 1100
94 4 0100
94 4 1100
94 5 0100
94 5 1100
94 6 0200
94 6 1100
94 7 0400
94 7 1100
94 1 0400

最佳答案

如果我没看错的话,关门时间将始终是第二天最早找到的时间,因此只需获取第二天的时间,排序并获取第一个记录即可得到关门时间:

public function scopeCloses($query)
{
$nextDayOfWeek = now()->addDay()->dayOfWeek;

$hours= $this->openinghours->where('day_id', $nextDayOfWeek)
->sortBy('closes')
->first();
return $hours->closes;
}

关于php - 查询 Laravel 深夜营业时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48882978/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com