gpt4 book ai didi

从保存为日期的字段中选择 PHP 年龄范围

转载 作者:行者123 更新时间:2023-11-30 22:37:05 26 4
gpt4 key购买 nike

我在从下拉选项 (1-99) 中查询年龄范围时遇到了一些麻烦,我开始一遍又一遍地查看它而感到困惑。

一些上下文:学校的学生在线列表,我正在使用 Bootstrap 。

如果我能弄清楚“from an age”,那么“to age”应该不会太难,所以我将只关注第一部分。

代码:

<div class="form-group">
<label for="from_age">From Age</label>
<select class="form-control" name="from_age" id="from_age">
<option value="">-- Choose an Age --</option>
<? for ($i = 1; $i <= 99; $i++) { ?>
<option value="<?= $i; ?>"><?= $i; ?></option>
<?}?>
</select>
</div>

稍后在代码中...这是我遇到问题的查询部分。此链中的所有其他查询都可以正常工作。这会添加查询的 WHERE 部分。

if ($_REQUEST['from_age']) {
$query .= " And DATE_FORMAT(FROM_DAYS(TO_DAYS(NOW()) - TO_DAYS(student.dob)), '%Y') >= '".($_REQUEST['from_age'])."'";
$link_params .= "&from_age=".$_REQUEST['from_age'];
}

数据库中的学生表将“dob”(出生日期)存储为日期 (1985-05-20)。

我试过这样的东西,但我知道逻辑是错误的,它会尝试只搜索年份。不过,在如何解决这个问题上还是一片空白。

And FROM_DAYS(TO_DAYS(CURDATE()) - TO_DAYS(student.dob)) + DATE_FORMAT(CURDATE(), '%Y') >= ".($_REQUEST['from_age'] + date("Y"))." ";

最佳答案

您可以使用 MySQL DATEDIFF 函数来计算用户的 dob 和 MySQL CURDATE() 函数之间的差异。请参见下面的示例。

+------+---------------------+
| name | dob |
+------+---------------------+
| Joe | 2000-08-02 05:15:17 |
| John | 1978-08-02 00:15:00 |
| Jake | 2015-07-07 00:00:00 |
+------+---------------------+

查询

select users.name ,floor(DATEDIFF(CURDATE(),users.dob )/365) as active_days
from users;

输出

+------+-------------+
| name | active_days |
+------+-------------+
| Joe | 15 |
| John | 37 |
| Jake | 0 |
+------+-------------+

或者您可以将用户选择的日期提供给您的查询并计算 Dob。希望对您有所帮助。

关于从保存为日期的字段中选择 PHP 年龄范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32232113/

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