php - MySQL 查询日历的事件

标签 php mysql calendar fullcalendar

我正在使用 MySQL 和 PHP 构建 SaaS 日历。

前端 javascript 日历库是 fullcalendar(每月 View ) http://fullcalendar.io/

我有一个名为 events 的 mysql 数据表,如下所示:

  • 身份证
  • ID_USER
  • BODY_NAME
  • BODY_START
  • BODY_END
  • IS_DONE
  • TIME_CREATED
  • TIME_UPDATED
  • TIME_DELETED

BODY_STARTBODY_END 使用 unix_timestamp。

然后在我的 PHP 代码中,我构建了一个查询助手来生成如下 SQL:

"SELECT * FROM `" . $this->_tableName . "` WHERE `ID_ACCOUNT` = '$_id_account' AND (( `BODY_START` >= 1424649600 AND `BODY_START` <= 1428278400 ) OR (`BODY_END` >= 1424649600 AND `BODY_END` <= 1428278400))";

fullcalendar 提供的开始和结束时间戳参数。

有个问题:

如果事件跨越当前月份,则不会显示。

示例:

  • ID f8a58d0c8280db2340863a1ac7aa60b0
  • ID_USER e576c22ce89f38ee422ec818807b99b8
  • BODY_NAME test_event
  • BODY_START 1422720000
  • BODY_END 1428422400
  • IS_DONE 0
  • TIME_CREATED 1422845255
  • TIME_UPDATED 0
  • TIME_DELETED 0

如果您进行查询,该事件将不会显示。

我该如何解决这个问题?谢谢。

最佳答案

如果我理解正确,请将您的查询简化为(伪代码):

  BODY_START <= month_end and BODY_END >= month_start

上面的原始查询要求事件必须在该月内开始或结束,但这实际上不是您想要的 - 您希望该月任何时间存在任何事件。

关于php - MySQL 查询日历的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29203860/

相关文章:

php - 当我返回页面时,下拉菜单不会保持选中状态

php - 如何在共享服务器上使用 wkhtmltopdf

php - 如何使用 jQuery 删除 img 周围的 P 标签?

java - mysql中日期特定格式

python - 当其中一个元素是 Python 字典时,向 MySQL 表中插入一行

mysql - 查询结果耗时太长。有没有更好的方法来编写这个 MySQL 查询?

angular - 始终显示日期选择器中的日历 - Angular

java - 是否可以创建像 Tue Mar 03 13 :43:00 (without time zone)? 这样的 Calendar 对象

java - 如何检查一天中的时间是否介于两个时间之间?

php - 24 :00 and 00:00? 之间的区别