DateTime Klasse?

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

  • DateTime Klasse?

    Hallo Leute,
    bin gerade dabei, mich ein wenig tiefer in die PHP OOP Abgründe zu stürzen und bin dann im Manual in den Datums- und Zeitfunktionen auf den Befehl date_create gestoßen, der mir angeblich ein neues DateTime Object zurückgibt.
    Allerdings kennt meine PHP Version weder die Klasse noch die Funktion, obwohl beides angeblich ab PHP 5.1.0 verfügbar ist (hab 5.1.4).

    Davon gefrustet hab ich dann angefangen, mir eine eigene Datumsklasse zu schreiben.

    PHP-Code:
    class Date {
        private 
    $timestamp;
        
        public function 
    __construct($datestr='now') {
            
    $this->timestamp strtotime($datestr);
        }
        
        public function 
    format($format='d.m.Y h:i') {
            return 
    date($format,$this->timestamp);
        }
        
        public static function 
    dateDiff($date1,$date2,$interval=86400) {
            return 
    floor(abs($date1->timestamp $date2->timestamp) / $interval);
        }

    Dazu hätte ich noch die Frage, ob die Verwenug einer static function in einer objektbezogenen Klasse sinnvoll/erlaubt ist (Funktionieren tuts jedenfalls). Wäre über jede Hilfe zur DateTime Klasse und/oder zu meinem Codeschnipsel sehr dankbar

    MfG ZC

  • #2
    Allerdings kennt meine PHP Version weder die Klasse noch die Funktion, obwohl beides angeblich ab PHP 5.1.0 verfügbar ist (hab 5.1.4).
    siehe dazu user notes.
    Dazu hätte ich noch die Frage, ob die Verwenug einer static function in einer objektbezogenen Klasse sinnvoll/erlaubt ist
    was ist denn das?

    Kommentar


    • #3
      Das ist durchaus erlaubt, und in diesem Fall auch sinnvoll.

      Eine statische Methode hat keinen Objektkontext, das heißt, man kann in ihr nicht auf $this-> zugreifen.

      In deinem Fall willst du ja nicht mit einem bestimmten Datumsobjekt arbeiten, sondern zwei Daten voneinander abziehen.

      Die Alternative wäre eine "zieh- ein- Intervall- von- mir- ab"- Methode, in der du $this->timestamp - $interval oder sowas zurückgibst, die dann auch nicht statisch sein soll.
      ich glaube

      Kommentar


      • #4
        siehe dazu user notes.
        ah, sorry...die hab ich natürlich komplett überlesen...
        was ist denn das?
        War wohl nicht ganz glücklich ausgedückt. Ich erstelle aus der Klasse ja Objekte. Eine statische Funktion benötigt diese jedoch nicht, ist also vom Objekt unabghängig, soweit ich das verstanden habe. Nun war die Frage, ob man es so lösen sollte, wie ich es getan habe, oder ob da eine "normale" Funktion ohne Klassenbezug besser ist.

        Die Intervall Methode wäre natürlich eine sinnige Sache, die ich wohl auch so umsetzen werde...

        Kommentar

        Lädt...
        X