0

そのため、特定の時間に発生して終了すると想定される一連のイベントを含むデータベースがあります。だから私のテーブルは(ここのイベントは実際のイベントであり、コードのものではありません)

Event |  TimeStart  |   TimeEnd   |   Day
A     |     0800    |    1400     |    2
B     |     2000    |    2300     |    3
C     |     1200    |    1900     |    4

私が欲しいのは、TimeEnd と TimeEnd + 3 時間の間の場合にイベントを発生させたいということです。私が遭遇する問題は、その 2300 の場合はどうなりますか? 月曜日(1)から日曜日(7)に対応​​する日付(N)の曜日を使用しました

したがって、イベント B の場合、現在の時刻を取得するコードが必要であり、(4 日目に行かないように) 3 時間短縮してから、TimeEnd を取得し、それに 3 時間を追加します。

私がテストした問題は、イベント B を 3 日目にするにはどうすればよいかということです。strtotime() を使用したとしても、イベント B は 2400 時間を過ぎても 4 日目を表示します。

問題を明確にするために、イベントが終了した後にのみ開始され、3 時間しか続かない投票投票を作成しています。

編集で答えが見つかりましたが、date() に「今週の月曜日」を使用する意味がわかりませんでした:D

4

1 に答える 1

0

テーブル内の時間の表現はちょっと奇妙です。各イベントが 1 回だけ発生する場合 (たとえば、毎週月曜日に繰り返されない場合)、時間を表すためにunix タイムスタンプを使用することをお勧めします。そうすれば、そのような問題はなくなります。

于 2013-11-03T08:18:24.227 に答える