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] Datum-Differenz berechnen bringt Fehler

Empfohlene Antworten

Hallo,

ich habe folgenden Code, um die Differenz zwischen zwei Daten zu berechnen:


$timestamp_start = strtotime($row['startdate'] . " " . $row['starttime']);
$timestamp_end = strtotime($row['enddate'] . " " . $row['endtime']);
$dauer = $timestamp_end - $timestamp_start;
[/php]

Dann will ich die Differenz ausgeben, das mache ich mit:

[php]
echo date("H:i:s", $dauer);

Es funktioniert eigentlich, ABER die Ausgabe ist genau um eine Stunde falsch. Wenn ich als Startwert habe 10.10.2006 14:30:00 und als Endwert 10.10.2006 14:40:00 müsste die Ausgabe ja 00:10:00 sein - aber sie ist 01:10:00 - also eine Stunde zu viel. Das passiert immer, aber die Rechnung ist sonst bis auf die Sekunde genau richtig... es ist lediglich immer genau eine Stunde zu viel. Wer weiß Rat?!

Grüße.

Und wenn Du es ohne das Datum testest, passiert das selbe?

Subtrahier doch einfach die Stunde wieder ... :D

Und wenn Du es ohne das Datum testest, passiert das selbe?

wie meinst du das jetzt?!

@Eytibi: War auch meine Idee, aber a) muss das doch richtig gehen B) kommt da eine Fehlermeldung alà "Wert darf nicht kleiner sein als 01.01.1970" und c) mus irgendwo ein Fehler sein.. :)

hatte ich auch das problem. hab -3600 für sekunden abgezogen

Ich meinte, ohne diesen Datumsstring davor. Würde aber sich nix ändern. Und wenn man mit Timestamp arbeitet? Genauer gehts ja dann kaum.

B) kommt da eine Fehlermeldung alà "Wert darf nicht kleiner sein als 01.01.1970"

Den Fehler kann man ja abfangen wenn die Differenz entsprechend klein ist. Als ich das Problem hatte, habe ich keine bessere Läösung gefunden und habe halt die Stunde (bzw. 3600 Sekunden) wieder abgezogen ...

Hallo,


echo date("H:i:s", $dauer);
[/php]

Da das keine Uhrzeit mehr ist, sondern ein Zeitraum sein soll, nimmst du gmdate, dann passts.

[php]
echo gmdate("H:i:s", $dauer);

Gruß Jaraz

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.