Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo,

ich habe da ein kleines Problem. Ich möchte die Zeitdifferenz in Tagen, Stunden, Minuten und Sekunden zwischen einem Startdatum und einem Endedatum ermitteln.

Ich habe schon folgenden Ansatz.


$Anfang = gmmktime($Anfangstunde,$Anfangminute,$Anfangsekunde,$Anfangmonat,$Anfangtag,$Anfangjahr);
$Ende = gmmktime($Endestunde,$Endeminute,$Endesekunde,$Endemonat,$Endetag,$Endejahr);
$Ergebnis = $Anfang - $Ende;
echo "Timestamp: $Ergebnis<br>";

echo "<br>";
echo date ("M d Y H:i:s", $Ergebnis);
$tag = date ("d", $Ergebnis) -1;
$monat = date("m", $Ergebnis) - 1;
$stunden = date ("H", $Ergebnis) - 1;
$minuten = date ("i", $Ergebnis);
$sekunden = date ("s", $Ergebnis);

echo "<br>Tage: $tag<br>Monate: $monat * 30 Tage<br>Stunden: $stunden<br>Minuten: $minuten<br>Sekunden: $sekunden";
[/PHP]

Als Parameter übergebe ich z. B.

[code]
Endedatum:
2002.06.05
13:35:00

Startdatum:
2002.04.01
07:30:00
[/CODE]
Als Ergebnis bekomme ich dann sowas wie:
[CODE]Mar 07 1970 07:05:00[/code]

Das mit den Stunden, Minuten und Sekunden scheint ja zu stimmen, aber wie mache ich das mit den Tagen (Monaten)?

Frank

Geschrieben

Date wandelt einen Unix-Timestamp (eine Integer-Zahl die seit dem 1.1.1970 jede sekunde um 1 hochgezaehlt wird) in ein Datum um. Dass dies nicht mit einer Differenz klappt duerfte logisch sein.

Ebenso ist eine Angabe in Monaten ungenau da die Anzahl Tage in einem Monat schwankt.

Daher bleibt dir nix anderes uebrig als die Differenz manuell umzurechnen, was aber auch nicht weiter schwer ist..


$tage=$ergebnis / 86400; // 1 Tag = 86400 Sekunden
$rest=$ergebnis % 86400; // Rest < 1 Tag (od. 86400 Sek)
$stunden=$rest / 3600; // Wieviele Stunden waren noch uebrig?
$rest=$rest % 3600; // Rest < 1 Stunde (od. 3600 Sek)
$minuten=$rest / 60; // Wieviele Minuten noch ueber?
$sekunden=$rest=$rest/60; // Rest < 1 Minute (od. 60 Sekunden)
[/PHP]

War doch gar nit so schwer :)

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...