Mittelwert zweier Datumsangaben bestimmen

suedi

Mitglied
hi leutz

ein Problem, was ich irgendwie bewältigen muss:

Ich brauche den Mittelwert zweier Zeitdatumsangaben

z.B: 2003.12.01 und 2002.05.03

Bei zahlen gehts ja leicht, einfach die niedrigere durch die Höhere teilen und dann

das ganze durch 2. Nur wie geht das mit einem Datum?Also mit mitte von
zwei Daten automatisch zu bestimmen?

bin überfragt

gruß
suedi
 
Ermittle die Differenz der zwei Daten und Teile die dann durch zwei.
Beispiel:
1.1.2003 und 1.3.2003
Differenz wären 2 Monate, durch zwei wäre ein Monat.
Ergebnis: 1.2.2003
 
sagen wir mal das datum heißt 1.12.2001

das enddatum 12.1.2003

was machst du dann? ne das geht nicht, man kann einfach nicht

mit einem datum wie mit zahlen umgehen, das habe ich schon

ausprobiert, ich frage mich ob es eine Funktion gibt oder etwas

dergleichen die dieses problem löst, vor allem, wenn ich wie

du sagst monate rauskriege, wie setze ich es es dann wieder

in das richtige datum um? woher weiß der Code dann zb. das richtige Jahr und

den richtigen Tag?

unmöglich?

gruß
suedi
 
Ein Blick in unsere PHP-FAQ hätte evtl. geholfen. Dort steht es zwar im zusammenhang mit Daten allgemein und Datenbanken aber hätte sich 1 a) übertragen lassen.

1) Mittels mktime() das Datum in einen UNIX-Timestamp verwandeln

2) Die zwei daraus resultierenden Zahlen (es sind übrigens Sekunden seit dem 1.1.1970) subtrahieren, die Differenz durch zwei Teilen und vom größeren Wert abziehen. Damit erhält man den Timestamp des Datum genau zwischen den zwei Daten und den kann man

3) mittels date() wieder in ein schönes Datum umwandeln.
 
Hallo,
ich würde die Daten generell ersteinmal in Timestamps umrechnen.
Mit diesen Timestamps lässt sich wesentlich einfacher rechnen.

Anschließend ziehst du vom höheren Wert den kleineren Wert ab, von dem Ergebniss nimmst du die Hälfte und hast den Abstand von den beiden Daten in Sekunden.
Diesen Abstand rechnest du auf das kleinere Datum auf und machst aus diesem Timestamp wieder ein Datum.

Sollte als Denkanstoß genügen...
 
Danke Danke

ich habe ewig danach gesucht, in die Faq habe ich geschaut,

aber da gings nur um Zahlen, ich habe übrigens dasselbe

auch für Zahlen gemacht, aber beim Datum bin ich nicht mehr

weitergekommen,hoffe das wird sich gleich ändern

viele Grüße
suedi
 
sagen wir mal das datum heißt 1.12.2001
das enddatum 12.1.2003
OK :-)

PHP:
$startdat = explode(".","1.12.2001");
$enddat = explode(".","12.1.2003");
$st  = mktime (0,0,0,$startdat[0],$startdat[1],$startdat[2]);
$se  = mktime (0,0,0,$enddat[0],$enddat[1],$enddat[2]);

$st = $st  +  ($se - $st) / 2 ;
echo date("d.M.Y",$st);

rein theoretisch :-)
 
Zurück