PHP: Datum für wiederholende Termine im Kalendar berechnen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • PHP: Datum für wiederholende Termine im Kalendar berechnen

    Hallo,

    ich bin gerade dabei einen Kalendar mit PHP und MySQL zu bauen.

    Das Problem was ich jetzt habe bezieht sich auf sich wiederholende Termine.

    Ich speichere einen Termin am 2ten Freitag des Monats (z.B.: 11.05.2007) und möchte jetzt dass der Termin jeden 2ten Freitag der folgeneden Monate wiederholt wird. Leider fehlt mir jeglicher Ansatz dafür wie ich in PHP das korrekte Datum dafür errechne.

    Ich brauche bitte eure Hilfe!!

    lg
    Flow09

  • #2
    Wenn du den Zeitstempel des ersten Termins hast, dann würde ich es mal mit strtotime() versuchen. Rechne zu deinem Zeitstempel 28 Tage hinzu. Dann bist du wieder auf einem Freitag. Ist dieses Datum immer noch innerhalb des aktuellen Monats rechnest du nochmals 14 Tage hinzu. Wenn das Datum bereits im neuen Monat liegt musst du feststellen ob bereits 7 Tage zuvor der neue Monat war. Wenn ja dann ist's der zweite Freitag des nächsten Monats, ansonsten musst du nochmals 7 Tage hinzurechnen

    Gruss

    tobi
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      Wenn die Vorgabe für den Termin lautet "immer am 2. Freitag eines Monats" - dann kann man auch immer vom Timestamp des jeweiligen Monatsersten ausgehend strtotime mit 'second friday' nutzen.
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        ...Monatsersten ausgehend strtotime mit 'second friday' nutzen.
        Wusste gar nicht, dass solche Sachen wie first oder second funzen würden. Das ist eine feine Sache und wieder was gelernt

        Gruss

        tobi
        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

        Kommentar


        • #5
          Das mit dem 2ten Freitag war nur als Beispiel gedacht!

          Es sollte so sein das ich den Termin eintrage und ein DropDown habe wo ich "monatlich wiederholen (tages basiert)" auswählen kann. Egal ob das nun der dritte Mittwoch des Monats oder erste Montag ist.

          Kommentar


          • #6
            Lass dir mal wahsaga's Tipp durch den Kopf gehen und setze diesen um. Lies im Manual zu strtotime() und dessen Parametern. Um den timestamp des Monatsersten zu ermitteln verwendest du mktime() mit entsprechenden Parametern

            Gruss

            tobi
            Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

            [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
            Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

            Kommentar


            • #7
              ja soweit hab ich mich auch schon durch die Doku von strtotime gewühlt, mein Problem ist nur wie ich herausfinde der wievielte Freitag der Woche das ist (oder Mittwoch, oder Montag, ...)

              Kommentar


              • #8
                Original geschrieben von Flow09
                mein Problem ist nur wie ich herausfinde der wievielte Freitag der Woche das ist
                OffTopic:
                Der Freitag einer Woche ist immer der erste der Woche ...


                Überleg doch mal (sollte man wohl erwarten dürfen, wenn du selber einen Kalender programmieren willst) - wenn heute Freitag ist, und er sollte der zweite im Monat sein - dann muss schon mindestens mehr als eine Woche seit Monatsbeginn vergangen sein (aber nicht mehr als zwei); sollte er schon der dritte sein, dann müssen es schon mehr als zwei Wochen sein (aber ...), etc.
                Das sollte sich anhand des Tagesdatums und mit etwas simpler Mathematik und einem bisschen eigenem Gehirnschmalz doch wohl ermitteln lassen.
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  ...mein Problem ist nur wie ich herausfinde der wievielte Freitag der Woche das ist
                  Natürlich immer der erste Oder hast du mehrere Freitage pro Woche ???
                  Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                  [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                  Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                  Kommentar


                  • #10
                    nein, ich meinte am wievielten z.B. Mittwoch ich den orginal Termin gespeichert habe.

                    Kommentar


                    • #11
                      nein, ich meinte am wievielten z.B. Mittwoch ich den orginal Termin gespeichert habe.
                      Genau gleich wie wahsaga schon geschrieben hat ! Du hast ja das Datum des original Termins. Also jetzt nur noch wie bereits vorgeschlagen rechnen

                      Gruss

                      tobi
                      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                      Kommentar


                      • #12
                        Im Grunde ist es ja noch einfacher, als ich eben beschrieb:
                        Tagesdatum (Nummer des Tags im Monat) durch Anzahl Tage einer Woche teilen, und auf nächste Ganzzahl aufrunden.
                        I don't believe in rebirth. Actually, I never did in my whole lives.

                        Kommentar

                        Lädt...
                        X