note 85942 added to function.strtotime

From: 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

« previous php.notes (#144707) next »