エロ、
ここPHP/MySqlで日付の問題に苦しんでいます。毎年、四半期ごと、毎月、隔週、または毎週の繰り返しの支払いを提供するフォームがあり、いつ支払いが行われたかを追跡できる必要があります。
したがって、たとえば、3 月 8 日の月曜日 (入力日) に何かが追加され、毎週木曜日に繰り返される場合 (繰り返しは毎週であるため、ユーザーには曜日を提供するドロップダウンのみが表示されます)、次のようになります。 52 (毎週) の期日をデータベースに入力し (ジュリアン/最も簡単なもの)、そのうちの最初の 9 日に支払われたものをマークします (これらの日は過ぎているため)。残りは入力されましたが、未払いとマークされました。
各 due_date エントリ、支払いの詳細へのリンク、および支払われた/支払われていないブールフィールドを持つテーブルがあります。
したがって、上記の例では、支払いテーブルは次のようになります。
id | pmnt_id | due_date | is_paid
1 | 0023 | 01/07/10 | 1
2 | 0023 | 01/14/10 | 1
3 | 0023 | 01/21/10 | 1
10 | 0023 | 03/25/10 | 0
11 | 0023 | 04/01/10 | 0
等...
問題は、まあ、すべてです。カレンダーシステムは非常に複雑であるため、これを行うための実際の論理的/簡単な方法はないようです. 私は頭を悩ませ、ゴーグルと PHP の日付マニュアルを午前中ずっと検索していましたが、ますます混乱しています。
アイデア/提案/ポインタは大歓迎です。
乾杯。
[をちょきちょきと切る]
$startDate = strtotime("$currentDay $currentMonthFull $currentYear");
$stTimeFormatted = strftime('%d/%m/%Y',$startDate);
$numPmnts = ($totalWeeks-$currentWeek);
for($i=0;$i<$numPmnts;$i++){
$ddates=array(
'sched_pay_id'=>$pmntID,
'due_date'=>date('m/d/y', strtotime('+'.$i.' week', $startDate)),
'is_paid'=>0,
);
$this->db->insert('sched_payments',$ddates);
}