stdmax.com STUDIO MAX
скрипты главная | скрипты | сайты | советы | графика | download | wap, pda-сайты | баннеры | магазин | контакты | ссылки | карта сайта

Скрипты

Вычисление диапазонов из произвольного списка дат

Массив $s содержит список дат, формата [date_from, date_to]. В результате получаем объеденённые диапазоны дат.


<?php

$s 
= array
(
array(
'2001-06-10', '2001-06-11'),
array(
'2001-06-14', '2001-06-03'),
array(
'2007-05-31', '2007-06-01'),
array(
'2007-05-20', '2007-05-30'),
array(
'2010-05-20', '2010-05-20'),
array(
'2010-05-21', '2010-05-21'),
array(
'2010-05-22', '2010-05-22'),
);
$h = array();
foreach (
$s as $v)
{
sort($v);
array_push($h$v[0].'.0'$v[1].'.1');
}
sort($h);
print_r($h);

$i = -1;

$pk 0;
$pv = -1;
reset($h);
while (
$v current($h))
{
list(
$ck$cv) = explode('.'$v);
if (
== $cv)
{
$d[$i][1] = $ck;
}
elseif (
!= $pv
&& $ck != date('Y-m-d'strtotime($pk) + 86400 3600))
{
$d[++$i][0] = $ck;
}
$pv $cv;
$pk $ck;
next($h);
}
print_r($d);

?>
Rambler's Top100 Megastock Яндекс цитирования Реклама в Интернет и продажа рекламных мест
2008, STUDIO MAX (vipset)
сайты, баннеры и программы для интернета
РОССИЯ, г.НОВОСИБИРСК