|
Posted by Rik on 10/19/06 06:52
kirke wrote:
> assume that I know the start and end date already.
> Then How can I generate dates between two dates?
Well, that should be easy, whipped together something for you (untested):
/* $start & $end = UNIX timestamps
$step = number of second between steps (60*60*24 for dates offcourse)
$format = returned format as in strftime()
$include_limits = boolean wether the start and end dates should be
included */
function generate_dates($start,$end,$step = 86400,$format =
'',$include_limits = false){
$start_i = intval($start);
$end_i = intval($end);
if($start_i!=$start || $end_i != $end){
trigger_error('No valid timestamps given.');
return false;
}
if($start_i > $end_i){
trigger_error('Start date is later then End date.');
return false;
}
if(!is_int($step) || $step <= 0){
trigger_error('Step is either not an integer or zero or less.');
return false;
}
$return = array();
if($include_limits({
$return[] = $start;
}
$current = $start_i + $step;
while($current < $end_i){
$return[] = strftime($format,$current);
$current = ($current + $step);
}
if(end($return) < $end_i){
$return[] = $end;
}
return $return;
}
--
Rik Wasmus
Navigation:
[Reply to this message]
|