- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想获取生日前后 3 天的用户列表。我的意思是,如果今天是 2013 年 3 月 2 日
,我想获取生日从 2013 年 2 月 27 日
到 2013 年 3 月 5 日
。这是我的数据库设计。
用户表
id | name | birth_day | birth_month | birth_year
我无法再更改数据库设计,因为我无法访问它,并且更改设计只会发生在网站上的巨大变化上。
这是我当前的代码:
if (empty($date))
$date = date('Y-m-d'); // now
$start_date = strtotime($date.' -'.$day_range.' day');
$end_date = strtotime($date.' +'.$day_range.' day');
$start_month = date('m', $start_date);
$end_month = date('m', $end_date);
$start_day = date('d', $start_date);
$end_day = date('d', $end_date);
if ($start_day > $end_day) {
$tmp = $start_day;
$start_day = $end_day;
$end_day = $tmp;
}
/* This is a dirty fix for getting birthdays between dates */
$this->User->contain(array('User' => array('first_name', 'last_name', 'userstatus_id')));
$user = $this->User->find('all', array(
'conditions' => array(
'User.birth_month BETWEEN ? AND ?' => array($start_month, $end_month),
'User.birth_day BETWEEN ? AND ?' => array($start_day, $end_day),
),
'fields' => array(
'birth_year',
'birth_day',
'birth_month'
),
'order' => array(
'birth_month' => 'ASC',
'birth_day' => 'ASC'
)
));
foreach($user as $k => $v) {
$temp = strtotime(date('Y-'.$user[$k]['User']['birth_month'].'-'.$user[$k]['User']['birth_day']));
if ($temp >= $start_date && $temp <= $end_date) {
}
else {
unset($user[$k]);
}
}
最佳答案
如果您不能更改表格设计,那么我会从三列中创建一个日期时间,然后将其用于过滤器:
select *
from
(
select id, name,
str_to_date(concat(year(now()), '-', birth_month, '-', birth_day), '%Y-%m-%d') birthdate
from users
) d
where birthdate >= '2013-02-27'
and birthdate <= '2013-03-05'
参见 SQL Fiddle with Demo .
这使用了 STR_TO_DATE()
和 CONCAT()
函数将生日创建为日期数据类型。确定日期后,您就可以应用日期过滤器。
关于php - 获取日期范围内的用户生日,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15161817/
如果我在 forms.py 中有: birthdate = forms.DateTimeField() 和 html: 我需要创建一个新的小部件还是有答案?
我正在尝试从 facebook sdk 获取生日,我可以获取我的生日,但我无法从其他帐户获取生日。我已经在“设置”中设置了联系人电子邮件,并在此处回答了一个应用程序供公众使用:Set up app p
我需要存储用户的出生日期。我在前端创建了一个表单,通过 3 个选择下拉菜单获取他们的出生日期年、月和日。我目前将这三个值存储在 SQL 中,并具有相同名称的列。 我需要执行的查询之一是获取高于或低于特
我有 mysql 数据库,以生日列作为日期。 保存到此列的最佳方式是什么,年份是可选的。我应该随便放一些年份吗?在数据库中保存生日的最佳做法是什么。 我在 cakephp 中创建了 3 个文本字段,日
考虑到此代码(基于 Python/Mongoengine),我知道如何找到下一个即将到来的生日 class User(mongoengine.Document): (...) birthday
在以前版本的 Prestashop 1.6 中,注册表单有生日字段的日期选择器和一个下拉列表,我们可以在其中选择月、日、年。 Prestashop 版本 1.6 - 生日截图: 然后在最新版本的Pre
我正在使用带有changeYear 的jquery ui datepicker。问题是它以 block 的形式显示年份(从 1985 年到 2005 年,然后单击 1985 年打开其他年份)我需要显示
我正试图在来自佛蒙特州和纽约的成员(member)的生日表中找到最年长的人。我的成员类似于以下内容: Members ------- MemberID, Firstname, Lastname, Bi
工作中需要用到身份证验证,还要支持检查15位和18位。 我一时手懒,问同事有没有现成的函数可用,同事google了一下,扔给我一个 asp-vbscript版本的函数。 可我这边是客户端j
我正在努力解决以下正则表达式: \b[\dBb][-. \dEe]+(\d{4})\b 它应该匹配帐号,但不匹配 token /生日或其中包含“be”的文本。在 community 的支持下,我成功捕
我有一个简单的小部件,它有: 请注意,今天是生日。因此,它意味着保持相同,无论您身在何处(不应该发生时区)。如果您 1 月 10 日凌晨 3:00 出生在英国,并且在纽约查看您的个人信息,您应该仍然
在我的数据库中,日期存储为 dd/mm/yyyy。当我检索它时,我想将日期分别拆分为字符串日、字符串月和字符串年。我应该怎么做? “/”将是分隔符,对吗? 最佳答案 您需要可以使用DateTime.P
我很难通过 Facebook SDK 获取用户信息。 我正在努力争取生日、工作和教育。 我正在使用这个: let graphRequest : FBSDKGraphRequest = FBSDKGr
我正在尝试使用 NSSortDescriptor 按日期对 NSMutableArray *friends, key:birthday 进行排序,我的 NSLog 中的所有生日都为空,但名称仍在记录中
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以便
我正在尝试从其 Google Plus 帐户获取用户的信息,包括性别和年龄。由于这些字段可能是私有(private)的,我认为明确请求它们可以解决问题。然而,尽管登录对话框明确指出该应用程序请求查看您
我正在制作一个 facebook 应用程序来显示用户的生日......... 'YOUR_APP_ID', 'secret' => 'Y
我正在尝试将 OAuth2 登录添加到我基于 Node/ExpressJS/MongoDB/PassportJS 构建的应用中。 我用这个方法可以成功登录,但是我无法获取某些信息。我唯一能够访问的是
关闭。这个问题需要debugging details .它目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and th
我无法让我的代码来获取我的测试帐户的“生日”,甚至我自己的“生日”(任何地方都没有成功!)来回显,尽管从我所看到的来看,我正在正确地请求它并且我拥有适当的权限对于“user_birthday”。 但是
我是一名优秀的程序员,十分优秀!