繁体   English   中英

需要显示按日期排序但按周分隔的mysql表

[英]Need to display mysql table ordered by date but separated by week

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

'meetingid'(int)

“时间”(日期时间)

“创建者”(文本)

我的问题是,当创建了很多会议时,看起来有些混乱并且难以阅读,因为它们都聚集在一起。 我想按周对它们进行拆分(从星期一开始,到星期日结束-如果方便的话,也可以从星期日到星期六)。 我已链接到底部的文档,该文档显示了我当前拥有的内容(第一页)以及更想要的内容(第二页)。 只要预订了会议,周标签(例如9月3日至9月9日)就只需打开。 因此,如果最近一次会议是10月7日,则显示的最后一周应该是“ 10月1日-10月7日”。 弄清楚如何按月将它们分开似乎很容易,但是我无法确定如何按周进行分离。 我假设有一些php date函数将对此有很大帮助,但我找不到它。 希望大家能有所帮助。

做这个的最好方式是什么?

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

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

使用date(“ W”)获取一年中的星期数。然后,您可以根据星期数分隔结果。

不知道数据的结构; 您可以使用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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM