2017-04-02 1 views
1

Je dois obtenir 26 dates à partir d'un point de départ. La prochaine date à partir de la précédente. Il serait fou de tout coder en dur ... Alors je me demandais comment je pouvais faire ça de façon dynamique? Y a-t-il un moyen plus intelligent? Je cherche à augmenter après la deuxième date. Peut-être avec une boucle for?Comment incrémenter dynamiquement des dates en utilisant strtotime?

<?php 
    //incrementing dates for bi-weekly (26 periods// 26 dates) 
    $firstdate = strtotime("+17 days", strtotime("2017-04-03"));//1 
    $i = date("Y-m-d", $firstdate); echo date("Y-m-d", $firstdate);//echo for testing 
    echo'<br>'; 
    $seconddate =strtotime("+14 days", strtotime($i));//2 
    $ii = date("Y-m-d", $seconddate); echo date("Y-m-d", $seconddate);//echo for testing 
    echo'<br>'; 
    ?> 
+1

Essayez et étiquette cela avec la langue d'abord, puis des choses plus ésotériques après . – tadman

+0

quel est le montant que vous souhaitez augmenter les dates par? Est-ce un montant constant ou un montant variable? – Jpsh

+0

@ user3299379: Après la deuxième date, il sera toujours +14 jours –

Répondre

3

Que diriez-vous ceci:

// initialize an array with your first date 
$dates = array(strtotime("+17 days", strtotime("2017-04-03"))); 

// now loop 26 times to get the next 26 dates 
for ($i = 1; $i <= 26; $i++) { 
    // add 14 days to previous date in the array 
    $dates[] = strtotime("+14 days", $dates[$i-1]); 
} 

// echo the results 
foreach ($dates as $date) { 
    echo date("Y-m-d", $date) . PHP_EOL; 
} 
1

Probablement la meilleure façon de le faire serait avec un tableau

$myDates = []; 
$firstdate = strtotime("+17 days", strtotime("2017-04-03")); 
array_push($myDates, date("Y-m-d",$firstdate)); 
for($i=0;$i<25;$i++){ 
    $lastdate = $myDates[$i]; 
    $nextdate = strtotime("+14 days", strtotime($lastdate)); 
    array_push($myDates,date("Y-m-d",$nextdate)); 
}  

echo "<pre>".var_dump($myDates)."</pre>";