我的表格包含event_start
日期和event_end
日期。
我很困惑如何获得下周的活动。以下变量具有下周开始日期和结束日期。
$day = date('w');
$next_week_start = date('Y-m-d', strtotime('+'.(7-$day).' days'));
$next_week_end = date('Y-m-d', strtotime('+'.(7+(6-$day)).' days'));
我想得到下周活跃的活动。
这就是我现在所拥有的。此处EVENT_SCHEDULE
是表名,event_date
是事件的开始日期。
$where .= " AND ( ( " . EVENT_SCHEDULE . ".event_date >= '" . $next_week_start . "' AND " . EVENT_SCHEDULE . ".event_date <= '" . $next_week_end . "' ) OR ( " . EVENT_SCHEDULE . ".event_enddate >= '" . $next_week_start . "' AND " . EVENT_SCHEDULE . ".event_enddate <= '" . $next_week_end . "' ) ) ";
有人可以帮我查询查询的where
条款吗?
答案 0 :(得分:2)
假设正确计算了开始和结束变量 你应该可以使用
$where .= "AND (" .
EVENT_SCHEDULE . ".event_date <= '".$next_week_end."' AND " .
EVENT_SCHEDULE . ".event_enddate >='" . $next_week_start."') ";
这是相同的代码,但在MySQL服务器上完成了日期计算 - 我假设这周是星期一到星期日
$where .= "AND (" .
EVENT_SCHEDULE . ".event_date <= date(Now()+interval 14-date_format(Now(),'%w') day) AND " .
EVENT_SCHEDULE . ".event_enddate >= date(Now()+interval 8-date_format(Now(),'%w') day)) ";
答案 1 :(得分:0)
我不知道你的字段event_date有什么数据类型,但是如果它是Unix时间你不应该创建一个人类可读的时间字符串,而是创建一个unix时间戳。但这取决于您的数据库方案。你没有提供实际问题。你提供的where子句对我来说很好。