ユーザーが今日の日付または特定の日付 (ユーザーが手動で URL に入力した場合) のスポーツ イベントを表示できるアプリがあります。ユーザーは、大まかに次のような UI コントロールを使用して、スポーツ イベントを日付別にナビゲートできます。
Tue Nov. 27 | Wed Nov. 28 | Thu Nov. 29
(日付は、中央の現在アクティブな日付を除くリンクです。)
この日付ナビ コントロールは、ほぼ毎日行われるスポーツ イベントに最適です。ユーザーは、イベントの空白のページをじっと見つめることはありません。ただし、NFL などのスポーツ イベントの場合、イベントは月曜日、木曜日、日曜日 (場合によっては土曜日) にのみ発生し、ユーザーが日付ナビゲーション UI コントロールを使用するのは面倒です。
私がやりたいのは、日付ナビゲーション UI リンクの作成の背後にあるロジックを変更して、イベントのある日付のみを含めることです。ロジックは次のようになります。
- 今日の日付またはユーザーが指定した日付を指定して、イベントのある最も近い日付を返します (current_date)
- current_date を指定して、イベントが発生した直近の日付 (previous_date) を見つけます。
- current_date を指定して、イベントがある最も近い次の日付を見つけます (next_date)
したがって、NFL の場合、今日の日付が 11 月 27 日であると仮定すると、日付ナビゲーション UI コントロールは次のようになります。
Mon Nov. 25 | Thu Nov. 29 | Sun Dec. 2
特定の日付にイベントがあるかどうかを確認する方法はstart_time
、DB のフィールドです。
コードなしで質問を投稿するのは好きではありませんが、DB に何度もアクセスすることなくこれにアプローチする方法についてのガイダンスを探しています。
注 #1: スポーツの日付をクリックすると、その日付のすべてのイベントが返されます。日付ナビは、個々のイベントの表示には使用されません。