FisyX Geschrieben 13. Juni 2004 Geschrieben 13. Juni 2004 Ich möchte die anzahl der Tage ermitteln die zwischen dem Datum 01.06.2004 und dem heutigen datum liegen. Wie kann ich das am besten realisieren.... Währe für jede hilfe dankbar denn mit timestamp und so kenn ich mich noch rech wenig aus... hab mal geggogelt und hab was gefunden... jedoch war mein verständniss = 0 Danke schonmal im vorraus
Mr. D Geschrieben 13. Juni 2004 Geschrieben 13. Juni 2004 Hi so hab mal kurz was gebastelt mal sehen obs dir weiter hilft $Heute=date("d.m"); // Berechnet den Tag und Monat des heutigen Tages $Datum=date("d.m",mktime(1,1,1,06,01,2004)); // Formatiert das Datum 01.06.2004, es wird nur der tag und monat ausgelesen, also 01.06 echo $Tage=$Heute-$Datum; //Berechnet die vergangenen Tage [/PHP] So der String $Tage müsste den wert 12 nun ergeben. Also sind 12 Tage seit dem 1.6 vergangen, wenn es über nen monat zb. geht dan gibt er 12.01...also 12 Tage und 1 Monat aus .Das kannst du ja mit ner Schleife so umgehen das er ab dem "." den String trennt und dan ausgibt ..bla bla...12 Tage und 1 Monat....oder so hoffe dir is jetzt geholfen^^ mfg
computercrustie Geschrieben 14. Juni 2004 Geschrieben 14. Juni 2004 SELECT TO_DAYS(datum) - TO_DAYS('2004-06-01') AS tage FROM tabelle
FisyX Geschrieben 14. Juni 2004 Autor Geschrieben 14. Juni 2004 So, hab das jetzt mal auf meine weiße gelöst ^^ Also mein Problem war es, ich wollte den Usern meiner Community anzeigen lassen wie viele tage sie schon registriert sind. Habe also bei der Registrtion mit dem Code: strtotime("now") (Wandelt ein beliebiges Datum (englisches Format) in einen UNIX-Zeitstempel (Timestamp) um) Das aktuelle Datum in die Datenbank eintragen lassen. Nun hole ich mir bei jedem einloggen diesen Wert aus der Datenbank und führe einen vergleich durch: $start_date = strtotime("now"); $end_date = datenbankeintrag; function diff_days($start_date, $end_date) { return floor(abs($start_date - $end_date)/86400); } echo function diff_days($start_date, $end_date) [/PHP] Somit bekomm ich die Anzahl der Tage raus
computercrustie Geschrieben 14. Juni 2004 Geschrieben 14. Juni 2004 Ja, warum auch einfach wenn's kompliziert geht Lass diese Berechnung doch gleich MySql ausführen, somit sparst du Code.
FisyX Geschrieben 15. Juni 2004 Autor Geschrieben 15. Juni 2004 Ja schon klar ... wie du im beispiel gebracht hast .... doch wie bekomme ich das datum z.b 11.06.2004 ins richtige format damit dies auch zu vergleichen geht ??? Bei meinem beispiel hab ichs ja umgewandelt... wie kann ichs bei deinem umwandeln ???
computercrustie Geschrieben 15. Juni 2004 Geschrieben 15. Juni 2004 Versteh ich nicht ?! Du wolltest doch die Tagesdifferenz zum 01.06.2004 haben, oder nicht ? Die hast du jetzt, und zwar in Tagen. [EDIT] Falls du die formatierte Ausgabe eines Datums via MySql meinst: SELECT DATE_FORMAT(datum,'%d.%m.%Y') FROM tabelle [/EDIT]
computercrustie Geschrieben 15. Juni 2004 Geschrieben 15. Juni 2004 Noch etwas: anstatt des festen Datums kannst du auch das aktuelle nehmen: SELECT TO_DAYS( NOW() ) - TO_DAYS( anmeldedatum ) AS angemeldete_tage, DATE_FORMAT( anmeldedatum, '%d.%m.%Y') AS angemeldet_seit FROM tabelle Wenn "anmeldedatum" ein Feld mit einem Datumtyp in der Tabelle "tabelle" ist, dann liefert diese Abfrage für jeden Datensatz folgende Felder zurück: angemeldete_tage: Anzahl Tage seit Anmeldung (bis jetzt) angemeldet_seit: Datum des Anmeldens im Format dd.mm.yyyy
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden