Antworten auf deine Fragen:
Neues Thema erstellen

PHP Datumsbereich in Schleife

exo

Aktives Mitglied

Hallo,

ich habe folgendes Problem:

Ich habe einen Datumsbereich ( Beispiel: 2012-09-30 und 2012-10-02 )

Jetzt will ich eine Schleife dort durchlaufen lassen pro jedem Tag.

Als Anfangsgedanke hatte ich folgenden Ansatz:

PHP:
<?
for($i=$tour->starttag;$i<=$tour->endtag;$i++){ }

Das Problem hierbei ist jedoch wenn der Bereich Monatsübergreifen ist, da der Endtag in dem Moment kleiner ist als der Starttag.

Hab zwar schon eine weile gegoogelt, aber find irgendwie keine richtige Lösung zu dem Problem...

Grüße

Micha
 

Robbyn-

PHP / Flex Programmierer

AW: PHP Datumsbereich in Schleife

Ich glaube das wirst du so nicht hinbekommen, Datum kannst du so nicht sortieren. Wie du auch schon selbst erkannt hast, sind deine Tage auch Monats übergreifend und das macht diese Sache sehr kompliziert. Verstehe aber auch nicht wo sowas zur Anwendung kommen könnte?! Vielleicht gibt es ja eine anderen weg, schildere mal dein Endresultat was du damit erreichen willst!
 

Duddle

Posting-Frequenz: 14µHz

AW: PHP Datumsbereich in Schleife

Rechne den Tag in einen Timestamp um (strtotime()), iteriere in 24*60*60-Schritten durch und wandle diesen neuen Timestamp mit date() wieder in ein Datum um.

Falls du schon PHP 5.2.2 hast, kannst du auch die DateTime-Klasse nehmen und dort mit modify() oder add() arbeiten. Die Objekte kannst du dann mit den Vergleichsoperatoren direkt miteinander vergleichen.


Duddle
 

exo

Aktives Mitglied

AW: PHP Datumsbereich in Schleife

Hach habs ja schon in einem alten Script mal hinbekommen ;) vermutlich aber auch eher wieder verdrängt weils einfach nen haufen haaaaarrrr ich sags jetzt nicht was es war ;)

für alle wissbegierigen hier meine Lösung:

PHP:
<?
 for($i=0;$i<=$tour->anzTage;$i++){
        if($i==0){
            $tag = date("d.m.Y", strtotime($tour->start_raw));     
            $tag_raw = date("Y-m-d", strtotime($tour->start_raw));
            $tag_check = date("d_m", strtotime($tour->start_raw));           
        }else{
            $nextDay = strtotime("+".$i." day", strtotime($tour->start_raw)); 
            $tag = date("d.m.Y", $nextDay);
            $tag_check = date("d_m", $nextDay);
            $tag_raw =  date("Y-m-d", $nextDay);              
        }
......
}

?>

Die Anzahl der Tage wird direkt aus der SQL-DB geholt mittels:

Code:
to_days(ende) - to_days(start) as anzTage

der Rest sind die Daten im YYYY-MM-DD Format
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.565
Beiträge
1.538.067
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben