【问题标题】:Need to display mysql table ordered by date but separated by week需要显示按日期排序但按周分隔的mysql表
【发布时间】:2012-08-31 15:54:31
【问题描述】:

我正在使用 PHP 和 MySQL。我有一个页面,显示由人员创建的会议,并带有查看详细信息的链接。现在我只使用一个简单的表格来显示按日期排序的所有内容。数据库中的表称为“会议”,有 3 列 -

'meetingid'(整数)

'时间'(日期时间)

“创作者”(文字)

我的问题是,当创建了很多会议时,它看起来有点凌乱且难以阅读,因为它们都在一个大丛中。我想按周将它们分开(从周一开始,周日结束 - 或者周日至周六,如果这样更容易的话)。我已经链接到底部的文档,显示了我目前拥有的内容(第一页)以及更像我想要的内容(第二页)。只要有预定的会议,周标签(例如 9 月 3 日 - 9 月 9 日)就需要继续。因此,如果最近一次会议是 10 月 7 日,那么显示的最后一周应该是“10 月 1 日 - 10 月 7 日”。弄清楚如何按月将它们分开似乎很容易,但我无法弄清楚如何按周进行。我假设有一些 php 日期函数会对此有很大帮助,但我找不到它。希望大家帮忙。

最好的方法是什么?

我还没有决定是否要让没有会议的周显示周标签。 (例如,9 月 10 日至 9 月 16 日之间没有会议。- 显示或不显示该标签。

示例链接(无需登录谷歌) https://docs.google.com/document/d/16cvRfPmovNBsx9QQ0U5qhVoW8bo0xjEABil3wTtEUrA/edit

【问题讨论】:

    标签: php mysql date sorting


    【解决方案1】:

    使用 date("W") 获取一年中的周数。然后您可以根据周数将结果分开。

    【讨论】:

    • 谢谢,这比我预期的使用 date("W") 容易得多。
    【解决方案2】:

    在不知道您的数据结构的情况下;您可以使用date() 函数返回的周数来跟踪您所在的周并以这种方式进行分解。

    $currentWeekNumber = -1;
    $rows = array(
        array('id' => 5, 'started_by' => 'Ben', 'when' => '2012-09-06 09:00:00'),
        array('id' => 6, 'started_by' => 'Julie', 'when' => '2012-09-07 18:00:00'),    
        array('id' => 18, 'started_by' => 'Ben', 'when' => '2012-09-18 20:00:00')
    );
    
    foreach($rows as $row) {
        $eventSeconds = strtotime($row['when']);
    
        $rowWeek = intval(date('W', $eventSeconds));
    
        if( $rowWeek !== $currentWeekNumber && $currentWeekNumber !== -1) {
            echo "----- Week Break ------\n";
        }
    
        $currentWeekNumber = $rowWeek;
        echo "Meeting #{$row['id']}, started by {$row['started_by']}, occurs at ".strftime('%c', $eventSeconds)."\n";
    }
    

    产生以下输出:

    Meeting #5, started by Ben, occurs at Thu Sep  6 09:00:00 2012
    Meeting #6, started by Julie, occurs at Fri Sep  7 18:00:00 2012
    ----- Week Break ------
    Meeting #18, started by Ben, occurs at Tue Sep 18 20:00:00 2012
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-27
      • 2016-07-24
      • 2015-04-10
      • 2015-07-18
      • 2021-06-07
      • 1970-01-01
      • 2023-03-09
      相关资源
      最近更新 更多