[英]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.