私は多くのアプローチを試みていますが、途中で立ち往生しています。
注文が今日作成されたとしましょう。次の定期注文がいつ発生するかを表示する必要があります。そのため、2012 年 6 月 13 日に作成された注文があります。次に、毎月 1 日、隔月の繰り返し注文にスケジュールを設定しました。次の定期注文がいつ発生するかを計算する方法は? 答えは8月1日です。
誰かがアプローチを概説できれば、それは非常に便利です。コードである必要はありません。これは私がこれまでに持っているものです...
// first, get starting date
$start_date_month = date('m', strtotime($start_date));
// get this year
$this_year = date('Y');
// if this month is december, next month is january
$this_month = date('m', $timestamp_month);
if($this_month == 12){
$next_month = 1;
// if this month is not december add 1 to get next month
}else{
$next_month = $this_month + 1;
}
// get array of months where recurring orders will happen
$months = array();
for ($i=1; $i<=6; $i++) {
$add_month = $start_date_month+(2*$i); // 2, 4, 6, 8, 10, 12
if($add_month == 13){$add_month = 1;$year = $this_year+1;}
elseif($add_month == 14){$add_month = 2;$year = $this_year+1;}
elseif($add_month == 15){$add_month = 3;$year = $this_year+1;}
elseif($add_month == 16){$add_month = 4;$year = $this_year+1;}
elseif($add_month == 17){$add_month = 5;$year = $this_year+1;}
elseif($add_month == 18){$add_month = 6;$year = $this_year+1;}
elseif($add_month == 19){$add_month = 7;$year = $this_year+1;}
elseif($add_month == 20){$add_month = 8;$year = $this_year+1;}
else{$year = $this_year;}
echo $what_day.'-'.$add_month.'-'.$year.'<br />';
$months[] = $add_month;
}
echo '<pre>';
print_r($months);
echo '</pre>';
今から 2 か月後の日付を単純に見つけたいわけではありません。注文が 6 月 1 日に作成されたとします。次の定期注文は 8 月 1 日です。次に、今日は 9 月 1 日ですが、次の定期注文は 10 月 1 日であるとします。私のジレンマがわかりますか?