gpt4 book ai didi

php - 如何使用 PHP 和 MySQL 从数据库中过滤日期和日期

转载 作者:行者123 更新时间:2023-11-29 20:10:33 27 4
gpt4 key购买 nike

我需要使用 PHP 和 MySQL 从数据库中获取日期。我的表格如下:

数据库日:

day_id    day_name

1 Monday

2 Tuesday

3 Wednsday

4 Thursday

5 Friday

6 Saturday

7 Sunday

上面是我的日表。

db_special:

id    restname       date_from          date_to      day_from  day_to

1 aaa 2016-09-22 2016-09-26 1 4

2 bbb 2016-10-19 2016-10-28 2 5

3 ccc 2016-10-18 2016-10-25 4 7

上面是我的两张表。假设用户输入Tuesday,需要从上表中获取日期范围内的值。这里,如果用户仅输入Tuesday,则首先应该计算日期和日期。如果假设今天是星期五,它将考虑下一个星期二

这里用户输入的只是星期二,因此它将计算今天的日期例如-2016-10-21,然后从上表中过滤值。此示例的预期结果应该是表中的这一行:

bbb 2016-10-19 2016-10-28 2 5

如何编写查询来解决此问题?

最佳答案

您可以尝试使用以下代码:

// $db is PDO instance
// $userDay is user input day

$todayDayId = date('N');
$stmt = $db->prepare('SELECT day_id FROM db_day WHERE day_name=:userDay');
$stmt->execute([':userDay' => $userDay]);
$userDayId = $stmt->fetchColumn();

if($todayDayId > $userDayId) {
$diff = (7-$todayDayId) + $userDayId;
}
else {
$diff = $userDayId - $todayDayId;
}

$wantedDate = date('Y-m-d', strtotime('+'.$diff.' day'));

$pdoData = [
':wantedDate' => $wantedDate,
':wantedDate2' => $wantedDate,
];
$stmt = $db->prepare('SELECT id, restname, date_from, date_to, day_from, day_to
FROM db_special
WHERE date_from>=:wantedDate AND date_to<=:wantedDate2');
$stmt->execute($pdoData);
$result = $stmt->fetchColumn();

关于php - 如何使用 PHP 和 MySQL 从数据库中过滤日期和日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40169969/

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