Sto provando molti approcci ma poi rimango bloccato a metà strada.PHP. Come ottenere un evento ricorrente ogni due mesi?
Diciamo che l'ordine è stato creato oggi. Devo visualizzare quando avverrà il prossimo ordine ricorrente. Quindi ho un ordine creato il 13 giugno 2012. Quindi ho impostato il programma su un ordine ricorrente ogni due mesi. Come calcolare quando si verificherà il prossimo ordine ricorrente? La risposta è il 1 ° agosto.
Se qualcuno può delineare un approccio, sarebbe molto utile, non deve essere codice. Questo è ciò che ho finora ...
// 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>';
Non voglio trovare semplicemente ciò che è la data in due mesi da oggi. Diciamo che l'ordine è stato creato il 1 giugno. Il prossimo ordine ricorrente è il 1 ° agosto. Diciamo ora, oggi è il 1 ° settembre, ma il prossimo ordine ricorrente è il 1 ° ottobre. Vedi il mio dilemma?
Vuoi ** solo ** la prossima data ricorrente da oggi, o tutte le date ricorrenti dalla creazione fino ae compresa la successiva da oggi? – salathe
Non vedo il tuo dilemma. Perché è importante il 1 ° settembre? Come si relaziona con il problema degli ordini ricorrenti? – afuzzyllama
Perché se l'ordine è stato creato oggi 13 giugno è facile trovare il prossimo ordine ricorrente. È anche facile trovare una serie di tutti i prossimi 6 ordini ricorrenti. Ora, se oggi fosse il 1 ° settembre, come calcoli il prossimo ordine ricorrente? Tutto ciò che deve essere calcolato è UNA data, solo il prossimo ordine ricorrente. – leonel