I try many approaches, but then I got stuck halfway.
Say the order was created today. I need to display when the next recurring order occurs. So I have an order created on June 13, 2012. Then I set the schedule to a two-month periodic order, every 1st month. How to calculate when the next recurring order will occur? The answer is August 1.
If someone can outline the approach, it will be very useful, it should not be code. This is what I still have ...
// 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>';
I donβt want to just find what it is in two months. Let's say the order created on June 1. The next recurring order is August 1. Then let's say today, September 1, but the next recurring order is October 1. See My Dilemma?
source share