Wie kann ich herausfinden, überlappende dateperiods/Datumsbereiche in PHP?
Wenn ich zwei Zeiträumen (z.B. 1. Mai - 31. Mai und 23. Mai - 5. Juni), was wäre der beste Weg, um herauszufinden, wie viele Tage die beiden Zeiträume überschneiden sich in PHP (so würde es wieder 9)? Gibt es eine Möglichkeit, dies zu tun mit DatePeriod Objekte?
Bearbeiten, um (hoffentlich) klarstellen, meine Frage:
Grundsätzlich möchte ich eine Funktion, die, gegeben zwei beliebige Datumsbereiche, wird wieder die Anzahl der Tage, die Häufig zwischen den beiden Zeiträumen. Wenn es eine überschneidung wird es wieder die Anzahl der überlappenden Tagen, ansonsten wird 0 zurückgegeben. Ich dachte, dies könnte geschehen, indem ein array mit den Daten für jeden Bereich, Durchlaufen Sie finden identische Daten, und verwenden Sie eine variable zum zählen der Anzahl der übereinstimmungen - aber ich bin auf der Suche nach etwas eleganter.
Sorry, ich hätte klarer. Ich denke, ich könnte wahrscheinlich machen ein array mit den Daten für jeden Bereich, Durchlaufen Sie finden identische Daten, und verwenden Sie eine variable zum zählen der Anzahl von Treffern. Es scheint, wie diese sein könnten, übermäßig kompliziert, aber wenn es eine weitere grundlegende Weg, dies zu tun mit DatePeriod. Ich weiß, Sie können berechnen die Differenz zwischen zwei Datumsangaben mit DateTime->diff, so dass ich wenn es vielleicht etwas ähnliches für DatePeriod, aber ich bin nicht mit viel Glück über Google. Vielleicht so etwas wie
$dateperiod->diff($dateperiod2)
.Okay, diese Frage wurde downvoted und geschlossen, was in Ordnung ist. Aber was kann ich tun, um zu stoppen als downvoted?
InformationsquelleAutor Dustin | 2013-01-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dank @phpisuber01 und Bestimmen, Ob Sich Zwei Zeiträume Überschneiden für die Bereitstellung der grundlegenden Logik hier. Die vier Variablen benötigen, werden DateTime-Objekte:
InformationsquelleAutor Dustin
Ohne real Informationen zu base auf.. Hier ist ein einfaches Beispiel zum berechnen einer Differenz von Tagen mit
DateTime
Objekt.Ich nehme an, Sie wissen, wie konvertieren von strings gibt es in nutzbare Zeitstempel/Formate.
Alles, was Sie tun müssen, ist das Datum der letzten in der ersten Reihe und das erste Datum in die Letzte Reihe und zu vergleichen. Boom.
Danke. Das funktioniert in dem Beispiel, das ich gab, aber ich sollte auch erwähnt werden, dass während eines die Bereiche vorgegeben, die andere wird vom Benutzer eingestellt, so kann es keine überschneidungen geben an alle. In diesem Fall vergleicht das Datum der letzten in einer Reihe mit dem ersten Datum in der anderen geben würde, eine positive Zahl, wenn es sollte 0 zurückgegeben werden.
Ohne all die Informationen, es gibt keine Möglichkeit für jemanden, um Ihnen eine Antwort geben. Aktualisieren Sie Ihre Frage mit all diesen details und der Versuch. Einige einfache Logik lösen, keine Sorge Sie haben mit der unreal Datum Intervallen.
Yup, ich weiß nicht, warum ich so viel Probleme beim schreiben meine Fragen von heute. Ich denke, vielleicht, weil die eigentliche Antwort ist anders, als das, was ich erwartet, aber selbst dann entschuldige ich mich dafür, dass Sie nicht irgendwo in der Nähe, detaillierte und klar genug. Ich denke, deine Tipps haben mich gut auf meinem Weg, um herauszufinden, etwas aus, also danke für deine Geduld. Sobald ich es herausgefunden ich Bearbeiten, meine Frage und poste meine Lösung.
InformationsquelleAutor phpisuber01