- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用information on FQL和 the user table根据 Facebook 的开发者文档,我想出了以下代码。
//build fql string
$fql = "SELECT name, birthday_date FROM user
WHERE uid IN
(SELECT uid2 FROM friend WHERE uid1 = me())
AND strlen(birthday_date) != 0 AND substr(birthday_date,0,3)
IN ('{$currentMonth}/', '{$nextMonth}/')";
$fql.=$orderBy;
$fql.=" LIMIT " . $limit;
//query facebook
$params = array(
'method' => 'fql.query',
'query' => $fql,
'callback' => ''
);
$birthdays = $this->facebook_obj->api($params);
$currentMonth
和 $nextMonth
分别设置为当前月份和下个月的字符串表示形式,采用 mm 格式。 (例如“09”、“10”等)
这是“工作”,但假设今天是 11 月 29 日,我有 20 个 friend 的生日在 11 月,并且 $limit
设置为 10。在这种情况下,有一个非常好的方法它返回的 10 个生日有可能都在 11 月 29 日之前。
我真正想做的是从今天开始,本月和下个月即将到来的生日。我怎样才能修改这个查询来完成这个任务?
谢谢!
** 编辑,请参阅 Shawn 和我之间的评论线程以获取可能的替代解决方案。尚未接受任何答案,因为没有人直接解决原始代码/问题。
最佳答案
虽然晚了几个月,但也许可以帮助其他面临同样问题的人。基本上,FQL IN
运算符不会检查该值是否在给定范围内,而是检查给定值是否与提供的任何不同值相匹配。在您的示例中,如果值是“09”和“10”,则返回 9 月和 10 月的所有生日,因为这些生日月份与提供的月份数字匹配。
您可以使用 PHP 或您正在使用的任何其他语言计算以下值,并在 FQL 中使用它们(今天是 3 月 17 日,假设我们希望 4 月 17 日是结束日期):
确保分别使用 dd 和 MM 格式化日期和月份(如果是个位数,则用零填充)。那么您的 FQL 将如下所示:
SELECT name, birthday_date
FROM user
WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me())
AND strlen(birthday_date) != 0
AND ((substr(birthday_date, 0, 2) = '03'
AND substr(birthday_date, 3, 5) >= '17')
OR (substr(birthday_date, 0, 2) = '04'
AND substr(birthday_date, 3, 5) < '17'))
ORDER BY birthday_date
这将返回生日在 3 月 17 日至 4 月 17 日之间的好友。
关于facebook - 使用 FQL 从 Facebook API 仅检索即将到来的生日,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8004345/
我遇到过 WinAPI 的奇怪行为,在我看来是这样。在我的程序中,我为窗口设置了一个计时器 ::SetTimer(window_handle, timer_id, 10, NULL); 并在我的窗口过
我是一名优秀的程序员,十分优秀!