Rechnen mit Datum und Zeit

Lektor21

Erfahrenes Mitglied
Hallo!

Ich habe ein kleines Problem und zwar möchte ich abfragen;

PHP:
elseif ($wartung == "auto")
{
if ($time_current > $wartung_start && $time_current < $wartung_end)
{
echo "<HEAD><meta http-equiv='refresh' content='0;URL=errordocuments/wartung.php'></HEAD>";
}
}

So nun weiß ich aber nicht wie ich die folgenden Variablen (dahinter Formatierung) in ein Format zum rechnen bekomme;

$wartung_from_date (Format: dd.mm.jjjj)
$wartung_from_time (Format: hh:mm)
$wartung_to_date (Format: dd.mm.jjjj)
$wartung_to_time (Format: hh:mm)

$time_current ist ja schon in dem Format!

Dankeschön schonmal :)
 
Funktionsstichwort:

[phpf]mktime[/phpf]

Damit kannst du ein Datum in einen UNIX Zeitstempel umwandeln und bequem damit rechnen.
 
Wo genau hakt es denn?

Du hast deine Daten, diese kannst du per [phpf]explode[/phpf] zerlegen, in [phpf]mktime[/phpf] einfügen und spontan hast du einen UNIX Zeitstempel.
Dies machst du mit allen benötigten Daten, führst deine Berechnung durch und bist eigentlich schon fertig.
 
Kannst du bitte mal überprüfen, ob das stimmt

PHP:
$wartung_from_date = "$data[1]";
$wartung_from_time = "$data[2]";
$wartung_to_date = "$data[3]";
$wartung_to_time = "$data[4]";

$date_1 = explode(".","$data[1]");
$time_1 = explode(":","$data[2]");
$date_2 = explode(".","$data[3]");
$time_2 = explode(":","$data[4]");


$wartung_start = mktime("$time_1[0]","$time_1[1]",0,"$date_1[1]","$date_1[0]","$date_1[2]");
$wartung_end = mktime("$time_2[0]","$time_2[1]",0,"$date_2[1]","$date_2[0]","$date_2[2]");

Wie gesagt, die Datums sind im Format dd.mm.jjjj und die Uhrzeiten im Format hh:mm

DANKE
 
Die meisten deiner Anführungszeichen sind komplett unnötig. Und ich persönlich finde die Namensgebung deiner Variablen umständlich, aber das bleibt natürlich dir überlassen, hier mal eine "bereinigte" Version.


PHP:
<?php
$wartung_from_date = "21.09.2007";
$wartung_from_time = "14:00";
$wartung_to_date = "21.09.2007";
$wartung_to_time = "18:00";

$date[] = explode(".", $wartung_from_date);
$time[] = explode(":", $wartung_from_time);
$date[] = explode(".", $wartung_to_date);
$time[] = explode(":", $wartung_to_time);

$wartung_start = mktime($time[0][0], $time[0][1], 0, $date[0][1], $date[0][0], $date[0][2]);
$wartung_end = mktime($time[1][0], $time[1][1], 0, $date[1][1], $date[1][0], $date[1][2]);  

$hours = ( $wartung_end - $wartung_start ) / 60 / 60;

echo "Die Wartung wird $hours Stunden dauern.";

?>
 
Zurück