Uhrzeit mit Zeitdauer addieren...aber wie?!

Hallo,

für alle php cracks hier wird das sicher alles kein problem darstellen.
aber ich suche und suche und finde nix. vielleicht suche ich auch einfach falsch.

ich habe das script mit den astronomischen ereignissen installiert und nun die
variablen für sonnenauf/untergang im ips liegen.

nun will ich auf diese Variable eine vordefinierte zeit addieren… z.B.

sonnenaufgang 8:12:00 wird duch ein weiteres skript auf 9:10:00 gesetzt.
(08:12:00 + 00:48:00) egal wie ichs versuche es kommt immer nur 8 oder 9
bei meiner addition raus… . ich denke das ich den php variabeln erst das format der uhrzeit zuweisen muss. nur wie? und kann ich die dann direkt addieren oder muss das mit nem umweg und nem auseinandernehmen der zeiten sein um den stundenumschlag zu realisieren?

Hoffe ihr haltet mich nich für verrückt aber stehe echt vorm wald und sehe die bäume nicht.

Lösungsweg:

  1. Die Uhrzeit mittels mktime() in eine Unixtimestamp umwandeln
    PHP: mktime - Manual
  2. Die Anzahl in Sekunden dem Wert dazuaddieren
  3. Das Ergebnis zurück in eine Uhrzeit wandeln mit date()
    PHP: date - Manual

$h = 12; //Start Stunde
$min = 00; //Start Minute
$min_add = 30; //Zeit in Minuten die dazuaddiert werden sollen

$erg = date("H:i:s",(mktime ($h,$min,0,date("m"),date("d"),date("y")))+(60*$min_add)); //12:30:00


hi,
ich danke dir!
werde versuchen mich durch zu wurschteln!

Danke!

Grüße
Danny

Je nachdem, wie die Uhrzeit vorliegt, könnte auch strtotime() eine gute Lösung sein.

Stefan

hi!

@Ferengi-Master

leider löst dein skript mein problem nicht. denn h und min liegen nicht einzeln vor. ansonsten wäre es kein problem.
ich habe nur die variable „sonnenaufgang“ und diese hat die form 24:59:59. mein problem is nun wie kriege ich daraus h und min einzeln raus?! alles andere is dann kein problem mehr…

Grüße
Danny

PHP: explode - Manual


$zeit = explode(":", $sonnenaufgang);
$h = $zeit[0];
$min = $zeit[1];

Leuts, macht das doch nicht komplizierter, als es ist :slight_smile: PHP hat doch extra Funktionen für Datum und Uhrzeit, die kann man verwenden :slight_smile:

$ergebnis = date('H:i:s', strtotime('8:12:00') + 58*60);

Wer es noch besser lesbar haben will:

$ergebnis = date('H:i:s', strtotime('+58 minutes', strtotime('8:12:00')));

Stefan

Da strtotime() versucht einen String in einen Timestamp umzuwandeln und das nicht immer gelingt, ist das in diesem Fall zwar eine brauchbare und elegantere Methode, man sollte aber beachten - würde die Uhrzeit aber in einem anderen Format z.B. „8-12-01“ vorliegen würde dies schon nicht mehr funktionieren.

dieses kleine PHP Schnipsel, hat mir heute echt weiter geholfen! DANKE!