note 85942 added to function.strtotime
| From: | orel16 at ya dot ru | Date: | Thu, 25 Sep 2008 17:48:29 +0000 |
| Subject: | note 85942 added to function.strtotime | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-144707@lists.php.net to get a copy of this message | ||
Some simple function to find all periods in dates list
function extract_periods($dates,$delimiter="="){
sort($dates);
$period=Array();
$date_from=$date_to="";
$k=0;
foreach ($dates as $key=>$value) {
if (empty($date_from)) $date_from=$value;
else {
$k++;
$tmp_date=strtotime("+ ".$k." day",strtotime($date_from));
if (date("Y-m-d", $tmp_date)!=$value) {
$tmp_date=strtotime("+ ".($k-1)." day",strtotime($date_from))
$date_to=date("Y-m-d",$tmp_date);
if ($date_from!=$date_to)
$period[]=$date_from.$delimiter.$date_to;
else
$period[]=$date_from;
$date_from=$value;
$k=0;
}
}
}
return $period;
}
Use:
$dates = Array(
"2008-09-30",
"2008-09-28",
"2008-09-26",
"2008-09-27",
"2008-09-25");
$periods = extract_periods($dates);
foreach ($periods as $value)
echo $value."<br />";
Output:
2008-09-25=2008-09-28
2008-09-30
----
Server IP: 213.186.192.247
Probable Submitter: 213.227.222.38
----
Manual Page -- http://www.php.net/manual/en/function.strtotime.php
Edit -- https://master.php.net/note/edit/85942
Del: integrated -- https://master.php.net/note/delete/85942/integrated
Del: useless -- https://master.php.net/note/delete/85942/useless
Del: bad code -- https://master.php.net/note/delete/85942/bad+code
Del: spam -- https://master.php.net/note/delete/85942/spam
Del: non-english -- https://master.php.net/note/delete/85942/non-english
Del: in docs -- https://master.php.net/note/delete/85942/in+docs
Del: other reasons-- https://master.php.net/note/delete/85942
Reject -- https://master.php.net/note/reject/85942
Search -- https://master.php.net/manage/user-notes.php