Ankündigung

Einklappen
Keine Ankündigung bisher.

Rechnen mit Timestamp

Einklappen

Neue Werbung 2019

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

  • Rechnen mit Timestamp

    Hallo

    Habe $ende mit dem wert von 30.10.2010
    Jetzt möchte ich das Ende um 2 Monate verschieben. Also bis zum letzten Tag des Dez.2010. Wie errechne ich das?
    Wenn ich z.b sage, ich habe bis zum 30.oktober bezahlt und kaufe mir nochmal 2 Monate dazu. Mit 30Tage*24Stunden*60minuten*60Sekungen + Timestamp von $ende geht das nicht. Da ich ja nicht weis, ob ein Monat 30, 31 oder X Tage hat.

    Und wie rechne ich sowas, wenn es über ein Jahr hinaus geht. Also letzter Tag im Oktober + 5 Monate macht somit letzte Tag im März. Ich würde alles auf den Timestamp runterrechnen. Weis ned wirklich wie ich das machen soll.

    jemand ne idee?
    Danke
    Der Unterschied zwischen dem richtigen Wort und dem beinahe richtigen ist derselbe Unterschied wie zwischen dem Blitz und einem Glühwürmchen.


  • #2
    PHP-Code:
    $months = array(31,28,31,30,31,30,31,31,30,31,30,31); 
    Für die Tage der Monate. Dann kannste dir das so zusammen basteln.
    Du musst halt immer prüfen, ob das Datum über ein Jahr hinaus geht und dann die Daten anpassen.


    Kommentar


    • #3
      Mal ganz doof gefragt: Schaltjahre?

      Kommentar


      • #4
        Erste Und 2 Antwort ergeben eigentlich der grund meiner Frage.
        Sonst könnte ich ja gleich mal pauschal mit 30 Tgen rechnen. Aber dann habe ich es nicht sekunden genau. und das ist ja eigentlich das ziel
        Der Unterschied zwischen dem richtigen Wort und dem beinahe richtigen ist derselbe Unterschied wie zwischen dem Blitz und einem Glühwürmchen.

        Kommentar


        • #5
          Dann eben prüfen ob ein Schaltjahr ist (alle 4 Jahre) und einfach dem Februar auf 29 Tage stellen. Wo ist da das Problem?


          Kommentar


          • #6
            [MAN]strtotime[/MAN]

            PHP-Code:
            $startat mktime(00010302010);

            $date strtotime('+2 months'$startat);
                
            print 
            date('d.m.Y'strtotime('last day of december'$date)) . PHP_EOL;
                
            $date strtotime('+5 months'$startat);
                
            print 
            date('d.m.Y'strtotime('last day of march'$date)); 
            DevBlog|3D Online-Shopping|Xatrium

            Kommentar


            • #7
              Gibts für strtotime auch eine Funktionsreferenz oder kann ich da wirklich einfach last friday December 2010 eingeben?
              Der Unterschied zwischen dem richtigen Wort und dem beinahe richtigen ist derselbe Unterschied wie zwischen dem Blitz und einem Glühwürmchen.

              Kommentar


              • #8
                Zitat von SteiniKeule Beitrag anzeigen
                Gibts für strtotime auch eine Funktionsreferenz oder kann ich da wirklich einfach last friday December 2010 eingeben?
                PHP: strtotime - Manual
                VokeIT GmbH & Co. KG - VokeIT-oss @ github

                Kommentar


                • #9
                  Zitat von BattleMaster246 Beitrag anzeigen
                  Dann eben prüfen ob ein Schaltjahr ist (alle 4 Jahre) und einfach dem Februar auf 29 Tage stellen. Wo ist da das Problem?
                  dass alle durch 100 teilbahren jahre keine sind, alle durch 400 aber wieder....zum beispiel....

                  Kommentar


                  • #10
                    PHP-Code:
                    date("t"
                    gibt die Anzahl der Tage im Monat wieder. Hierüber lässt sich soetwas denke ich besser errechnen als über Datums-Strings.

                    Kommentar


                    • #11
                      Es gibt sachen, die nehmen im Gehirn so viel "Speicher" weg, dass man richtig merkt wie es doch gut tut, wenn man sich das nicht mehr merken muss. Auf jeden Fall werde ich sowas nicht nochmal machen

                      Ich habe eine Lösung gefunden die, nach meinen Berechnungen, genau den letzten Tag im nächsten Monat ausgibt. Danke an Paps und php Man. für die Infos die ich gebraucht habe.

                      PHP-Code:
                      $datum date('d.m.Y',mktime(000date("m")+1  date('t',mktime(000date("m")+1  date("d"), date("Y"))), date("Y"))); 
                      Ich hab es getest (für die nächsten paar Monate) und es scheint wirklich zu gehen. Würd mich freuen wenn da noch jemand mal drüber schaun kann. Möchte da keinen Fehler rein bringen da sehr vieles auf dieser Berechnung basiert.
                      Der Unterschied zwischen dem richtigen Wort und dem beinahe richtigen ist derselbe Unterschied wie zwischen dem Blitz und einem Glühwürmchen.

                      Kommentar


                      • #12
                        Ich hab dir trotzdem mal noch eine schnelle Lösung mit strtoptime gebaut, auch weil's mich spontan selbst interessiert hat:
                        PHP-Code:
                        $months 22;
                        echo 
                        date('d.m.Y'strtotime('last day of '.date('F Y'strtotime('+'.$months.' months')))); 
                        Gibt in diesem Fall korrekt 29.02.2012 aus.

                        Ich beantworte dir auch gleich noch deine Frage:
                        >kann ich da wirklich einfach last friday December 2010 eingeben?
                        Ja.
                        PHP-Code:
                        echo date('d.m.Y'strtotime('last friday of november 2010'));
                        // 26.11.2010 
                        PHP-Code:
                        echo date('d.m.Y'strtotime('last friday of december 2010'));
                        // 31.12.2010 
                        VokeIT GmbH & Co. KG - VokeIT-oss @ github

                        Kommentar

                        Lädt...
                        X