Ankündigung

Einklappen
Keine Ankündigung bisher.

Anzeigen der Anzahl von ganzen Jahren, seit einem bestimmten Datum

Einklappen

Neue Werbung 2019

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

  • Anzeigen der Anzahl von ganzen Jahren, seit einem bestimmten Datum


    Für eine Internetseite hatte ich vor kurzem die Aufgabe, dass die Anzahl der Jahre seit dem Bestehen eines Vereins angezeigt werden sollte. Im folgenden Beispiel war die Gründung am 20. August 1983. Der folgende Code - eingebettet im HTML-Code - berechnet hierfür nun immer die genaue Anzahl der Jahre. Dadurch spring die Anzahl der Jahre, jedes Jahr am 20. August, auch ganz exakt um 00:00:00 Uhr auf den nächsten Wert hoch.

    Wer möchte, der darf meine Umsetzung gerne auch für seine Internetseite verwenden. Anstelle von 1983 muss man dann halt seine eigene Jahreszahl und bei "Y-08-20" das Datum eintragen. Anstelle von "08" den betreffenden Monat und anstelle von "20" den betreffenden Tag eintragen. Den Aufbau des PHP-Codes darf man aber nicht verändern, weil er sonst nicht richtig funktioniert.

    Code:
    <?php
    // ---- Die Anzahl der Jahre des Bestehens des Vereins berechnen ---------------
    date_default_timezone_set("Europe/Berlin");
    $Zeit = time();
    $Jahre = date("Y",$Zeit) - 1983;
    $Datum_1 = new DateTime(date("Y-08-20",$Zeit));
    $Datum_2 = new DateTime(date("Y-m-d",$Zeit));
    $Abstand = $Datum_1->diff($Datum_2);
    $Abstand = $Abstand->format('%R%a');
    if (substr($Abstand, 0, 1) == "-")
    {
    $Jahre--;
    }
    echo "$Jahre ";
    ?>
    Tipp:
    Die HTML-Dateien mit der Dateiendung "*.php" speichern. Da kann man dann beliebig viele PHP-Abschnitte einbauen und die PHP-Codes sind im Quelltext nicht zu sehen.

  • #2
    Warum so umständlich
    PHP-Code:
    date_default_timezone_set("Europe/Berlin");

    $now     = new DateTime();  //24.02.2018
    $regDate = new DateTime('20. August 1983');

    echo 
    $now->diff($regDate)->" Jahre\n";  // 34 Jahre 
    Zudem entnommen aus der Wissenssammlung.

    Bitte beachte auch ---> Wer darf hier posten

    Kommentar


    • #3
      Zitat von protestix Beitrag anzeigen
      Warum so umständlich
      PHP-Code:
      date_default_timezone_set("Europe/Berlin");

      $now = new DateTime(); //24.02.2018
      $regDate = new DateTime('20. August 1983');

      echo 
      $now->diff($regDate)->" Jahre\n"// 34 Jahre 
      Zudem entnommen aus der Wissenssammlung.

      Bitte beachte auch ---> Wer darf hier posten
      Funktioniert! Danke!

      Kommentar


      • #4
        Hinweis:
        Das Beispiel
        PHP-Code:
        $regDate = new DateTime('20. August 1983'); 
        ist schlecht gewählt, da es suggeriert, DateTime interpretiert die deutsche Datums-Schreibweise. Das ist nicht der Fall bzw. nur für bestimmte Ausnahmen. "20. März 1983" funktioniert schonmal nicht!

        Kommentar


        • #5
          [MOD: verschoben von PHP-Fortgeschritten]
          Competence-Center -> Enjoy the Informatrix
          PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

          Kommentar


          • #6
            Zitat von jspit Beitrag anzeigen
            Hinweis:
            Das Beispiel
            PHP-Code:
            $regDate = new DateTime('20. August 1983'); 
            ist schlecht gewählt, da es suggeriert, DateTime interpretiert die deutsche Datums-Schreibweise. Das ist nicht der Fall bzw. nur für bestimmte Ausnahmen. "20. März 1983" funktioniert schonmal nicht!
            Danke für den Hinweis! Ich hatte den Code ohnehin schon geändert übernommen:
            Code:
            date_default_timezone_set("Europe/Berlin");
            $Beginn = new DateTime('20.8.1983');
            $Datum = new DateTime();
            echo $Datum->diff($Beginn)->y . " ";

            Kommentar


            • #7
              Sinnvoller wäre es das Datum im ISO-Format zu schreiben:
              PHP-Code:
              new DateTime('1983-08-20'
              Dieses ist universell und wird fast von jedem System verstanden. Irgendwelche "komischen" deutschen Formate provozieren nur Fehler, da sie nicht immer korrekt von Computersystemen verstanden werden.

              Kommentar

              Lädt...
              X