1

PHPとMySQLを使用しています。詳細を表示するためのリンクを使用して作成された会議を表示するページがあります。現在、単純なテーブルを使用して、すべてを日付順に並べ替えて表示しています。データベース内のテーブルは「会議」と呼ばれ、3 つの列があります -

「ミーティングID」(整数)

'time' (日時)

'作成者' (テキスト)

私の問題は、非常に多くの会議が作成されていると、それらがすべて 1 つの大きな塊になっているため、少し乱雑で読みにくいように見えることです。それらを週ごとに分割したいと思います(月曜日から日曜日、または日曜日から土曜日まで)。私が現在持っているもの(最初のページ)と私が欲しいもの(2番目のページ)に似たものを示す下部のドキュメントにリンクしました。週のラベル (例: 9 月 3 日 ~ 9 月 9 日) は、会議が予約されている間のみ続ける必要があります。そのため、最新の会議が 10 月 7 日の場合、表示される最後の週は「10 月 1 日 - 10 月 7 日」になります。それらを月ごとに分ける方法を理解するのは簡単に思えますが、週ごとにそれを行う方法について頭を悩ませることはできません. これに大いに役立つphp日付関数があると思いますが、できます」見つけられません。皆様のお役に立てれば幸いです。

これを行う最善の方法は何ですか?

会議がない週に週ラベルを表示するかどうかはまだ決めていません。(例: 9 月 10 日から 9 月 16 日まではミーティングはありません。そのため、そのラベルを表示するか、表示しないでください。

例へのリンク (Google にサインインする必要はありません) https://docs.google.com/document/d/16cvRfPmovNBsx9QQ0U5qhVoW8bo0xjEABil3wTtEUrA/edit

4

2 に答える 2

1

date("W") を使用して、その年の週番号を取得します。次に、週番号に従って結果を分けることができます。

于 2012-09-06T19:16:39.597 に答える
0

データがどのように構造化されているかを知らなくても; 関数によって返される週番号を使用して、現在の週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
于 2012-09-06T19:21:38.947 に答える