Timeproblem

medicus41

Mitglied
Hi,

1. In meiner DB habe ich Zeiten im timeformat(00:00:00) gespeichert, also $ankunft = 18:00:00. Wie bekomme ich es nun hin eine bestimmte Anzahl von Minuten abzuziehen, das auch wieder eine korrekte Zeit dargestellt wird, also zb.

$nachbereitung = 50;
$ankunft = 17:30:00;
$fertig = $ankunft + $nachbereitung;
Hier soll dann $fertig = 18:20:00 sein. Bekomme es irgendwie nit hin.
 
HI !

Also obwohl ich dei zeit anders speichern würde an deiner Stelle hab ich nun auf Basis deiner Daten ein kleines Skript geschribeen, is etwas umständlich, aber so gehts, und was besseres fällt mir im Moment net ein.

PHP:
<?php
$nachbereitung  = 50; // in Sekunden
$ankunft        = "17:30:00";

$zeit           = explode(":", $ankunft);
$seks           = $zeit[0] * 3600 + $zeit[1] * 60 + $zeit[2];
$fertig         = $seks + $nachbereitung;

$stunden        = floor($fertig / 3600);
$minuten        = floor(($fertig - $stunden * 3600) / 60);
$sekunden       = floor($fertig - $stunden * 3600 - $minuten * 60);
$fertig         = $stunden.":".$minuten.":".$sekunden;
?>
PS: habs mit einigen Beispielen getestet,a ber geb keine garantie ;)
 
Zuletzt bearbeitet:
ich benutz in meiner datenbank bei allen zeiten immer nur time(), also nur die sekunden vom 1.1.1970, mehr braucht man doch auch nicht, mit date() ist das doch schnell umgewandelt, wenn mans braucht und dabei ist es auch nicht wirklich schwer, ein paar sekunden draufzurechnen bzw. abzuziehen
 
Hi,

danke an Alle, aber ich habs mit timestamp gelöst. Aber nun ein Problem welches ich habe und die Frage wie ihr das angehen würdet.

Ich hab eine Flugdatenbank in der Flüge mit entsprechenden Zeiten gespeichert sind. Nun gibt es eine Schedule welche die Flüge jedes Tages anzeigen. Dabei versehe ich die Flüge mit verschiedenen Status(en).
Beispiel:

Flug1 geht um 13.00 Los und landet um 15:00 Uhr. Dieser Flug wird dann, wenn ich um 12 Uhr die Seite betrete als "boarding" bezeichnet.
Flug2 ging von 11:00 bis 11:30. dieser wird um 12 Uhr mit "Landed" gezeichnet.
Flug3 geht von 11:00 bis 14:00. dieser wird als enroute bezeichnet. Das funktioniert alles ohne Probleme

Datenbankabfrage richtet sich nach den Wochentagen.

Nun betrete ich um 22:00 die Seite und es gibt einen flug welcher um 21:00 losging, aber erst um 03:00 landet. Dieser wird aber nur bis 00:00 angezeigt, weil ja ab dann schon der nächste Tag anfängt.

Wie könnte ich das lösen?
 
ich nehm mal an, dass du ne timestamp davon hast, wann die flugzeuge landen, also auch die sekunden vom 1.1.1970...

dann machst einfach...

PHP:
if ($timestamp_landung > time()){
  echo "das flugzeug xyz landet um".date("h:I",$timestamp_landung);
}else{
  //flug ist schon gelandet
}
 
Hi,

der Timestamp hilft dabei nicht, da die Abfrage ja auf den Wochentag zielt.
Beispiel: am Montag habe ich einen flug der von 22:00 - 03:00 geht. Solange ich Montags die Seite betrete alles klar. Gehe ich aber am Dienstag auf die Seite wird der Flug nicht mehr angezeigt, da die Abfrage ja auf Dienstag zielt und an diesem Tag startet der Flug nicht.
 
deshalb sollst ja auch die timestamp der landung nehmen...

probiers einfach aus kleiner :)
dann siehst, dass es funktioniert, weil das script ja gar nix mit den wochentagen zu tun hat, sondern nur mit den sekunden arbeitet
 
Zurück