2017-04-02 11 views
1

Ich brauche 26 Daten von einem Startpunkt. Das nächste Datum beginnt mit dem vorherigen. Es wäre wahnsinnig hart alles zu programmieren ... Also ich frage mich, wie kann ich das dynamisch machen? Gibt es einen klügeren Weg? Ich möchte nach dem zweiten Termin erhöhen. Vielleicht mit einer for-Schleife?Wie können Datumsangaben mit strtotime dynamisch erhöht werden?

<?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

Versuchen und Tag dieses mit der Sprache zuerst, dann eher esoterische Dinge nach . – tadman

+0

Wie hoch ist der Betrag, um den die Daten erhöht werden sollen? Ist es eine konstante Menge oder eine sich ändernde Menge? – Jpsh

+0

@ user3299379: Nach dem zweiten Datum wäre es immer +14 Tage –

Antwort

3

Wie wäre es damit:

// 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

Wahrscheinlich der einfachste Weg, dies zu tun, mit einer Reihe wäre

$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>"; 
Verwandte Themen