# Zeitunterschied berechnen



## BriXen (19. April 2004)

Hi Leute,

ich hab ein kleines Problem, bin php- und muss für die schule was erledigen. ich bekomme 2 variablen: $Ab="12:00:00" und $An="13:25:12", hierbei handelt es sich um meinetwegen zeitanggaben einer buslinie.

jetzt soll ich den zeit unterschied berechnen, hab aber absolut keinen plan wie ich da rangehe, bzw wie ich das problem löse.

Waere für Hilfe sehr dankbar

MfG


----------



## JocalAreaNetwork (19. April 2004)

Konvertiere mit Hilfe von mktime() deinen String in einen UNIX-Timestamp und subtrahiere dann die frühere Zeit von der Späteren.
Mit der Differenz kannst du dann arbeiten und die auch mit date($format, $time); wieder ausgeben. 

Grüße Jan


----------



## BriXen (19. April 2004)

danke jan für deine hilfe erstmal.

also würde das dann so anfangen:

mktime($Ab)
mktime($An)

mktime($Ab) - mktime($An)= $Diff

?
sorry bin echtn nuub

MfG


----------



## BriXen (19. April 2004)

ok hab mal weiter geschaut.

nun bin ich hier:

$Ab=mktime(12,0,0,20,04,2004)
$An=mktime(13,12,30,20,04,2004)

$Diff=$Ab-$An

is das soweit korrekt, ka was da ausgegenen wird wenn ich echo "$Diff" eingebe.

MfG


----------



## JocalAreaNetwork (19. April 2004)

Hast du mal den Link dir angeschaut? Da ist eine spezielle Syntax vorgeben. 
Du müsstes als erstes dir im Klaren darüber sein, was genau dein Format ist, sagen wir halt mal:
hh:mm:ss
Dieses könntest du mit folgendem dann berechnen:

```
list($stunden1, $minuten1, $sekunden1) = explode(":", $zeit1);
list($stunden2, $minuten2, $sekunden2) = explode(":", $zeit2);
// Nun die Syntas von mktime() beachten
$unixtime_1 = mktime($stunden1, $minuten1, $sekunden1);
$unixtime_2 = mktime($stunden2, $minuten2, $sekunden2);
// Der Unterschied
$dif = abs($unixtime_1-$unixtime_2);
// Jetzt kannst du deinen neuen String nehmen:
$string_dif = date("H:i:s", $dif);
```

Du solltest dir im Klaren darüber sein, dass das Ganze NICHT funktioniert, wenn du Sprungzeiten von 23h und 1h hast, das müsstest du dann über eine Datumsangabe machen. 

Grüße
PS: Sollte eigentlich so gehen, habe es nicht getestet, aber das Prinzip sollte eigentlich klar sein.


----------



## StefanR (19. April 2004)

Probiers doch aus!


----------



## BriXen (19. April 2004)

danke für die hilfe,
zum ausprobieren fehltt leider die zeit,
ich brauchte nur den syntax, damit ich an dem n bisserl was lernen konnte,
für morgen erste stunde in der schule.

so halb kapiert hab ichs, wo die Haken liegen.

also danke und gut n8


----------

