Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

PHP / MYSQL Zeit und Datum

Empfohlene Antworten

Veröffentlicht

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 :rolleyes:

Danke schonmal im vorraus

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


SELECT TO_DAYS(datum) - TO_DAYS('2004-06-01') AS tage FROM tabelle

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 :D

Ja, warum auch einfach wenn's kompliziert geht ;)

Lass diese Berechnung doch gleich MySql ausführen, somit sparst du Code.

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 ???

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]

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

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.