Restzeit aus 2 Datum/Uhr ausgeben

Mc-Kani

Mitglied
Abend Alle Zusammen.
Also ich such jetzt schon seid einigen stunden und habe nichts gefunden was mir weitergeholfen hat.

Unzwar suche ich nach etwas was mir den "restzeit" zwichen 2 Datumen und Zeiten Ausgibt.
Diese 2 Datumen und Zeiten sind in meinem datenbank.
also bspw.
Code:
table1datum1 = 07.09.2006
table2datum2 = 14.09.2006
table1zeit1 = 22:04
table2zeit2 = 15:04

Und Jetzt soll es mir ausgeben wieviel Tage zwichen 07.09.2006 und 14.09.2006 geblieben sind. Und Wieviele stunden zwichen 22:04 und 15:04 geblieben ist..

Ist das mit PHP möglich ? Wenn ja womit?
Ich hoffe ihr könnt mir weiterhelfen.
Grüße und Danke.
 
Ne das ist die einfachste Lösung und nicht im Ansatz kompliziert ;)
Aber was evtl noch eine Lösung wäre, die Mysql bzw die Datenbanklösung, denn du musst wissen da gibt es etliche Funktionen die sowas können ;)
 
Online-Skater hat gesagt.:
Ne das ist die einfachste Lösung und nicht im Ansatz kompliziert ;)
Aber was evtl noch eine Lösung wäre, die Mysql bzw die Datenbanklösung, denn du musst wissen da gibt es etliche Funktionen die sowas können ;)

und da kenn ich mich weniger mit aus.. :)
Wie Soll ich jetzt das datum zerlegen :/

PHP:
$zerlegen = explode(".",$datum);
$a="$zerlegen[2]";
so etwa ?
Format im Datenbank: tag.monat.jahr [22.08.2006]
 
Ich bin jetzt soweit gekommen...
PHP:
// Datum1
$datum1 = "08.09.2006";
// Zeit1
$zeit = "14:50";
// Datum1 Zerlegen
$zerlegen = explode (".",$datum1);
$a="$zerlegen[1]";
$b="$zerlegen[2]";
$c="$zerlegen[0]";
// Zeit1 Zerlegen
$zer = explode (":",$zeit);
$z1="$zer[0]";
$z2="$zer[1]";
// Datum2
$datum2 = "14.09.2006";
// Zeit2
$zeit2 = "14:40";
// Zeit2 Zerlegen
$zer2 = explode (":",$zeit2);
$z3="$zer2[0]";
$z4="$zer2[1]";
// Datum2 Zerlegen
$zerlegen2 = explode (".",$datum2);
$a1="$zerlegen2[1]";
$b1="$zerlegen2[2]";
$c1="$zerlegen2[0]";
// timestamp für Datum und Zeit 1
$timea = mktime($z1,$z2,0,$a,$c,$b);
// timestamp für Datum und Zeit 2
$timeb = mktime($z3,$z4,0,$a1,$c1,$b1);
// timestamp von Datum und Zeit 1 - mit timestamp von Datum Und Zeit 2
$erg = $timeb-$timea;
// Mit Date in Gewunschte format ausgeben
$baydate = date('t.m.y H:i:s', $erg);
// AuSGabe
echo $baydate;
Es gibt mir folgendes aus..

31.01.70 00:50:00

Ich bin noch neu im breich php. :) Deswegen nur wenig ahnung.
Ich hoff ihr könnt mir weiterhelfen.
Gruß
 
Zuletzt bearbeitet:
Japp stimmt so einfach war es dann doch nicht :p
Hätte ich auch früher drauf kommen müssen date() gibt die jetzt das Datum von der Differenz aus. Die Differenz die du nun hast sind Sekunden sprich der Timestamp ist in Sekunden d.h. viel spass beim umrechnen ;)
 
Online-Skater hat gesagt.:
Japp stimmt so einfach war es dann doch nicht :p
Hätte ich auch früher drauf kommen müssen date() gibt die jetzt das Datum von der Differenz aus. Die Differenz die du nun hast sind Sekunden sprich der Timestamp ist in Sekunden d.h. viel spass beim umrechnen ;)
hehehe Hast mir ja viel weitergeholfen. :)))
Wie rechne ich das jetzt um..
ok 60 sec. sind 1 min. *g* Was nun ? hehehehe
Wie bekomm ich den jetzt nen vernüpftigen datum und Uhrzeit raus ?
 
Zuletzt bearbeitet:
Hallo!

Man benutze die Forensuche, gibt dort "Countdown" ein und findet z.b. das Thema "Countdown zum WM-Finale" welches die Differenz zwischen dem akutellen Zeitpunkt und einen Endzeitpunkt in Tagen/Stunden/Minuten/Sekunden berechnet.
Mit ein wenig Eigeninitiative kommt man auch schnell darauf dass man anstatt dem aktuellen Zeitpunkt (welcher durch time() ermittelt wird) auch einen festen Zeitpunkt nehmen kann.
Heraus kommt dabei dann z.b. dieses:
PHP:
<?php
$start = mktime(22, 4, 0, 9, 7, 2006); // (Stunde, Minute, Sekunde, Monat, Tag, Jahr)
$ende = mktime(15, 4, 0, 9, 14, 2006); // (Stunde, Minute, Sekunde, Monat, Tag, Jahr)

setlocale(LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge');
$rest = $ende-$start;
$days = floor($rest/24/60/60);
$rest = $rest-($days*24*60*60);
$hours = floor($rest/60/60);
$rest = ($rest-($hours*60*60));
$minutes = floor($rest/60);
$rest = $rest-($minutes*60);
$seconds = floor($rest);
$day = (($days != 1)?" Tage":" Tag");
$hour = (($hours != 1)?" Stunden":" Stunde");
$minute = (($minutes != 1)?" Minuten":" Minute");
$second = (($seconds != 1)?" Sekunden":" Sekunde");
if($ende >= $start) {
    if($days != 0) {
        $out = "Die Differenz beträgt ".$days.$day.", ".$hours.$hour.", ".$minutes.$minute." und ".$seconds.$second.".";
    }
    if($days == 0) {
        $out = "Die Differenz beträgt ".$hours.$hour.", ".$minutes.$minute." und ".$seconds.$second.".";
    }
    if(($days == 0) AND ($hours == 0)) {
        $out = "Die Differenz beträgt ".$minutes.$minute." und ".$seconds.$second.".";
    }
    if(($days == 0) AND ($hours == 0) AND ($minutes == 0)) {
        $out = "Die Differenz beträgt ".$seconds.$second.".";
    }
} elseif($ende <= $start) {
    $out = "Fehler: Das Enddatum darf nicht vor dem Anfangsdatum liegen!";
}
?>
<html>
<head>
<title><?php echo $out; ?></title>
</head>
<body>
<?php
echo $out."\n";
?>
</body>
</html>
Nun noch das Datum/die Urzeit aus Deiner Datenbank mittels explode() zerlegen und an den entsprechenden Stellen von mktime() einfügen.

Gruss Dr Dau
 

Neue Beiträge

Zurück