gpt4 book ai didi

php - MySQL DAYNAME 明智地检索不同时区的数据

转载 作者:行者123 更新时间:2023-11-29 09:31:00 25 4
gpt4 key购买 nike

我正在开发一个应用程序,我们在工作日存储医生预约时间表。为此,我们维护一个日程表和一个存储日期的日历表。这是计划表的表快照 enter image description here

在我们的应用程序中,当用户选择日期时,医生的预约列表将根据该日期的日名显示。现在,我正在获取医生所需的日期范围数据,如以下未使用时区的查询。

select datefield as date, 
(select count(id)
from appointment_schedules
where substring(dayname(calendar.datefield),1,3) = appointment_schedules.week_day
and user_id=$user_id
)
from calendar
where datefield between '$start_date' and '$end_date'"

现在我们实现时区明智的约会列表,其中约会列表将根据用户时区显示。由于工作日在时间表中是固定的,因此我没有找到考虑时区的正确检索方法。例如,如果用户的时区与服务器的时差为 8 小时,则在某个时间段内,用户日将比服务器提前或落后。我陷入了如何在单个查询中显示用户时区每日准确数据的困境。

任何建议都将受到高度赞赏。提前致谢

最佳答案

下面是一些关于如何处理它的粗略代码,我还没有对此进行测试,但它应该足以解决您的查询。

PHP:

$utc_difference = -12;
$week_day = "SUN";
$prev_week_day = "SAT";
$next_week_day = "MON";

MySQL:

WHERE 
(DATE_SUB(start_time, INTERVAL $utc_difference HOUR) < 0 AND week_day = $prev_week_day)
OR
(DATE_SUB(start_time, INTERVAL $utc_difference HOUR) > 24 AND week_day = $next_week_day)
OR
(DATE_SUB(start_time, INTERVAL $utc_difference HOUR) > 0 AND DATE_SUB(start_time, INTERVAL $utc_difference HOUR) < 24 AND week_day = $week_day)

关于php - MySQL DAYNAME 明智地检索不同时区的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58732752/

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