hi leute,
ich habe ein array
Array
(
[0] => 2006-12-02
[1] => 2006-12-03
[2] => 2006-12-04
[3] => 2006-12-05
[4] => 2006-12-16
[5] => 2006-12-17
[6] => 2006-12-18
)
und eine variable
$bericht = "2006-12-03"
ich will nun das anfangs- und enddatum des zeitraums haben.
Das wäre hier:
[0] => 2006-12-02
...
[3] => 2006-12-05
Wie komme ich zu diesem Ergebnis?
Vielen Dank
dude
Folgender Versuch:
position von dem gesuchtem im array zu finden
$gesuchtedatum="2006-12-03";
$pos;
for($i=0;$i<count($array);$i++){
if($gesuchtedatum==$array[$i]){$pos=$i; break;}
}
schleife von dem gefundener stelle nach unten laufen, so lange der datumswert sich nur in ein Tag abweicht.
$start="";
$laufdatum=$gesuchtedatum;
$tag=1;
for($i=$pos-1;$i>=0;$i--){
if(date("Y-m-d",strtotime($laufdatum." -".($tag++)." days"))==$array[$i]){
$laufdatum=$array[$i];
}else{
$start=$i+1;
break;
}
}
und das selbe nach oben laufen lassen.
$ende="";
$laufdatum=$gesuchtedatum;
$tag=1;
for($i=$pos+1;$i<count($array);$i++){
if(date("Y-m-d",strtotime($laufdatum." +".($tag++)." days"))==$array[$i]){
$laufdatum=$array[$i];
}else{
$ende=$i-1;
break;
}
}
Fehlerhaftes Ergebnis:
die ergebnisse: $pos $array[$start] $array[$ende]
[0] => 2006-12-01 "0" "" "2006-12-02"
[1] => 2006-12-02 "1" "" "2006-12-03"
[2] => 2006-12-03 "2" "2006-12-02" "2006-12-04"
[3] => 2006-12-04 "3" "2006-12-03" "2006-12-04"