Anzahl Monate bestimmen

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

  • Anzahl Monate bestimmen

    Hallo,

    hab ein kleineres Problem...

    Zwei Timelines:
    - eine in der Datenbank gespeicherte, ältere (als Unix-Zeitstempel)
    - die momentane

    Das Problem:
    Es muss ausgerechnet werden, wieviele Monate zwischen diesen Timelines liegen bzw. die jeweilige Timeline (einfach in 'nem Array gespeichert).
    Es muss weiter eine weitere Zeit ausgerechnet werden, die das Tagesdatum (zB den 23.) beibehält, aber sich im Monat auf den nächstgelegenen Termin von heute aus verschiebt.

    Am Besten ein Beispiel:
    Die gespeicherte Timeline ist: 24. März 2003
    Die momentane Timeline ist: 13. Januar 2003
    Nun soll die Anzahl der dazwischen liegender Monate ausgerechnet werden: 9 Monate
    Der nächste Termin: 24. Januar 2003
    Zwischen diesen zwei Zeiten fand kein weiteres "Update" der Zeiten statt.

    Ich hab das schon über mehrere Varianten ausprobiert, aber ich schaff's einfach nicht ... julianischen Kalender oder über Unix-Zeit rechnen - es hackt immer irgendwo.

    Hat vielleicht jemand eine Lösung?

    Vielen Dank im Voraus!

    MfG, rob

  • #2
    Re: Anzahl Monate bestimmen

    Die gespeicherte Timeline ist: 24. März 2003
    "timeline"? - was für ein problem hast du mit dem deutschen begriff "datum" ...?


    um den nächsten termin berechnen zu können, sieh dir mal strtotime() an.

    damit solltest du dann auch rauskriegen können, wie viele monate zwischen datum1 und datum2 liegen (so lange plus einen monat rechnen, bis er wert grösser wird als datum2. eins abziehen, dann hast du die anzahl der monate dazwischen. ist zwar etwas umständlich, aber was besseres fällt mir auf die schnelle nich' ein *g*)
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      PHP-Code:
      $date1='2004-03-12';
      $date2='2003-03-11';
      $diff=date('m'strtotime($date1)) - date('m'strtotime($date2))
      $diff+=abs(ceil((date('d'strtotime($date1)) - date('d'strtotime($date2)))/31));
      $diff-=1;
      while(
      $diff<=0)
          
      $diff+=12;
      echo 
      $diff
      so?

      ohne garantie, dass es wirklich funktioniert
      Ich denke, also bin ich. - Einige sind trotzdem...

      Kommentar


      • #4
        Die gespeicherte Timeline ist: 24. März 2003
        laut LEO, und der allgemeingültigen übersetzung, heisst timeline nichts anderes als die Zeitachse bzw. die Zeitleiste.

        und da erwarte ich mehr als ein date.


        wie kann dann dieser satz/(oder was auch immer) einen sinn ergeben?
        Die gespeicherte Timeline ist: 24. März 2003
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          Sorry für den missverständlichen Gebrauch von "timeline" - macht wirklich überhaupt keinen Sinn und eigentlich bin ich auch gegen das englische Deutsch. Wollte eigentlich "timestamp" benutzen, da dann deutlicher geworden wäre, dass es sich um UNIX-Zeit handelte.

          @mrhappiness: Soweit ich das beurteilen kann, funktioniert die Lösung! Vielen Dank!

          Kommentar

          Lädt...
          X