【问题标题】:MySQL and PHP: Get regularly dates from one starting dateMySQL 和 PHP:从一个开始日期定期获取日期
【发布时间】:2017-05-28 14:51:51
【问题描述】:

我的目标:我有一个开始日期,并希望通过 SQL 查询获得所有即将到来的日期。

我的日历中有一个简单的 SQL 查询,用于检查是否是今天。是今天吗,日历中显示今天的会议(与今天的会议相同的日期)。

$sql = "SELECT * FROM meetings WHERE date = '$today_date';

现在我有了一个新功能,可以单次、每周和每月一次的会议。在我的数据库中有一个列,此数据以“e”(单个)、“w”(每周)和“m”(每月)存储。

现在我搜索 mysql 查询解决方案或其他提示,以便在一个开始日期获取所有即将发生的事件。

例如:开始日期是 5 月 28 日(这是我的数据库条目:开始日期和定期列:每周),会议是每周会议。所以我想在我的日历中看到即将在 6 月 4 日召开的会议。

【问题讨论】:

  • 如果您有每周和每月的选项,如何定义上限?因为,未来的时间是无限的:)。或者,您实际上对每个会议都有单独的条目?
  • 是的,这就是问题所在:条目没有尽头,我不希望我的数据库中有无限的条目。所以我需要一个只有一个条目的解决方案。

标签: php mysql date calendar


【解决方案1】:

尝试在假设的基础上解决问题。因为,在日历中,您将一次显示一个月。如果点击下个月,则修改当前月份。这里有很多伪代码。

$sql = "SELECT * FROM meetings WHERE date > '$today_date'";
$result = $conn->query($sql);
// Get Current Month [Cur_month]
while($row = $result->fetch_assoc()) 
{
    if($row["meetingtype"] === 'e') // single
    { 
        // Meeting data
    }
    if($row["meetingtype"] === 'w') // weekly
    { 
        // For loop from 0 .. 3
        // Display Meeting data 4 times 
        // date = date + 7;
    }
    if($row["meetingtype"] === 'm') // Monthly
    { 
        // just display for cur_month;
    }

}

【讨论】:

  • 感谢您的回答@Umashankar,它帮助我解决了问题。
  • 解决方案:我也有月历,但我首先需要它在周历中。所以,我的查询得到了今天和过去的所有会议。我将日历工作日(例如星期一)的名称存储在变量中。然后在我的函数中,我只返回从今天开始的会议,以及日历中的一周中的哪一天与会议的同一天匹配。呵呵,解释起来有点复杂。
  • Martin - 如果你喜欢这个答案,请接受它并为答案投票。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-10
  • 1970-01-01
  • 1970-01-01
  • 2016-10-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多