Alle Zeitperiode zwischen zwei Daten speichern

Pol

Mitglied
Hallo
wie kann ich alle mögliche Zeitperioden zwischen zwei Daten ins mysql sichern?

Ich habe 1.1.2014 (startdatum) 06.06.2016(enddatum). Ich will alle Zeitperioden pro Monat zwischen diesen beisen Daten in eine mysql Tabele anspeichern.
Die gesuchten Zeitperioden:
1.1.2014
1.2.2014
1.3.2014
..
..
1.6.2016

INSERT INTO Zeitperioden (Id, Zeitperiode)..

Ich wäre für jeden Hinweis sehr froh.
Pol
 
Soll das PHP-Skript automatisch erkennen ob heute z.B. der 01.03.2014 ist und das dann in die DB eintragen? Also einmal pro Monat bis 06.2016?
 
Hello
Nein. Ich denke an einem Startdatum und an einem Enddatum. Interval ist 1, 2, 4,12 oder 24 Monate.
startdatum=01.01.2014
enddatum= 01.06.2016

Code:
While (startdatum <= endatum){
  Then Insert INTO Zeitperiode(Id,'startdatum')
  startdatum= sartdatum + Interval    // 01.02.2014 = 01.01.2014 + 1M
}

In diesem Fall sollte eingentlich "heute" keine Rolle spielen.

Pol
 
Zuletzt bearbeitet von einem Moderator:
Hello Alice und ComFreek
Danke für die Reaktion.
Ich habe mein Problem mit dem folgenden Code gelöst:

PHP:
$begin = new DateTime($rsnew['Gueltigab']);
$end = new DateTime($rsnew['Gueltigbis']);
//$end = $end->modify( '+1 day' );

$interval = new DateInterval('P'.$rsnew['Zyklus'].'M');
$daterange = new DatePeriod($begin, $interval ,$end);

foreach($daterange as $date){
   echo $date->format("d.m.Y") . "<br>";
    $datummitzeits= date("Y-m-d",strtotime($date->format("Y-m-d")));
$MyResult = ew_Execute("INSERT INTO testrechnung(Code,Startdatum,betrag) VALUES (807,'".$datummitzeits."','900')");
}


Danke.
Pol
 
Hiermit bekommst Du die Anzahl an Monaten. In deinem Beispiel wären es 29 Monate.

PHP:
<?php
// Start- und Enddatum festlegen
$S_Date = new DateTime('2014-01-01');
$E_Date = new DateTime('2016-06-01');

// Differenz berechnen (Array -> print_r)
$Difference = $S_Date->diff($E_Date);

// Umrechnen in Monate
$Get_Months = 12 * $Difference->y + $Difference->m;

// Anzahl Monate ausgeben
echo 'Zwischen beiden Daten liegen '.$Get_Months.' Monate.';
?>
 
Zurück