Ankündigung

Einklappen
Keine Ankündigung bisher.

Ende von 3-Monate-Perioden ermitteln

Einklappen

Neue Werbung 2019

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

  • #16
    OK, hier nochmal das Script mit 2 var_dumps und 1 echo:
    PHP-Code:
    $userstart $pdo->query('SELECT date_begin FROM users WHERE id = 2')->fetch();
    var_dump($userstart);
    echo 
    '<br/>';
    $start $userstart['date_begin'];
    var_dump ($start);
    echo 
    '<br/>';
    $now dt::create('now');
    for(
    $end dt::create($start);$end <= $now$end->modify('3 month'));  
    echo 
    $end
    ... und hier das Ergebnis:
    array(2) { ["date_begin"]=> string(10) "2019-12-01" [0]=> string(10) "2019-12-01" }
    string(10) "2019-12-01"
    2019-12-01 00:00:00

    Kommentar


    • #17
      Ok, hier liegt ja der Vertragsbeginn schon in der Zukunft. Was soll da als Enddatum rauskommen? Vertragsbeginn + 3 Monate? Wenn da Restzeiten zum Aktuellen Tag ermittelt werden sollen kommen Zeiträume > 3 Monate raus. So richtig sinnvoll erscheint mir das nicht.

      Kommentar


      • #18
        Zitat von jspit Beitrag anzeigen
        Ok, hier liegt ja der Vertragsbeginn schon in der Zukunft. Was soll da als Enddatum rauskommen? Vertragsbeginn + 3 Monate? Wenn da Restzeiten zum Aktuellen Tag ermittelt werden sollen kommen Zeiträume > 3 Monate raus. So richtig sinnvoll erscheint mir das nicht.
        ups, klar (: ... Also: es funktioniert jetzt sauber inkl Formatierung und Restzeitberechnung. Das war eine Riesenhilfe, vor allem weil deine dt-Klasse die Funktion __toString eingbaut hat, an der ich bis dahin gescheitert war, denn ich bekam beim DB-Zugriff immer object-Format geliefert (ich hoffe ich habe alles korrekt gedeutet). Großer Dank.

        Kommentar


        • #19
          immer object-Format geliefert
          Anmerkung .. Dafür gibt es die Methode format()

          PHP-Code:
          $dt = new DateTime('now');  // Datumsobjekt erzeugen
          echo $dt->format('Y-m-d');  // Ausgabe im Format YYYY-MM-DD  ~ "Iso-Format"

          // Ausgabe: 2019-11-12 
          The string "()()" is not palindrom but the String "())(" is.

          Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
          PHP.de Wissenssammlung | Kein Support per PN

          Kommentar


          • #20
            Warum wird das eigentlich nicht von der Datenbank errechnet?

            Code:
            SELECT
                DATE_FORMAT(`datum`, "%d.%m.%Y") AS Abschluss,
                DATE_FORMAT(`datum`,"01.%m.%Y") AS Beginn,
                DATE_FORMAT(DATE_SUB(DATE_ADD(DATE_FORMAT(`datum`, "%Y-%m-01"), INTERVAL 3 MONTH), INTERVAL 1 DAY),"%d.%m.%Y")  AS Ablauf
            FROM 
                `users`
            WHERE
                `id` = 2
            SQLfiddle

            Kommentar


            • #21
              Zitat von protestix Beitrag anzeigen
              Warum wird das eigentlich nicht von der Datenbank errechnet?
              Warum einfach, wenn es auch umständlich geht ...

              Kommentar


              • #22
                Sein V-Ende hat sich ja alle 3 Monate autom. nach hintern verlängert / hinausgeschoben. Das war ja nicht statisch. Dh hatte einen V-Beginn (immer ein 01. eines Monats) und dann von dem weg immer 3 Monate autom. Verlängerung nach "hinten", mit einem V-Ende Datum immer >= heute.

                Also ich suchte das Enddatum der x. 3-M-Periode seit Vertragsbeginn
                Zumindest hab ich es so verstanden. .. "die X. 3-M.Periode seit V-Beginn"

                (Was aber jetzt nicht heissen soll, das es mit SQL nicht machbar ist, aber auf jeden Fall braucht man das Tagesdatum dazu etc...)
                The string "()()" is not palindrom but the String "())(" is.

                Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                PHP.de Wissenssammlung | Kein Support per PN

                Kommentar

                Lädt...
                X