Скрипты
PHP
» Вычисление диапазонов из произвольного списка дат
» Пробежаться по всем дням и часам недели
» Печатаем строчки :)
» Карточная страница
» Простейший RDF XML парсер
» PHP Uploader
HTML
» Контролируем favicon.ico
Вычисление диапазонов из произвольного списка дат
Массив $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 (1 == $cv) { $d[$i][1] = $ck; } elseif (0 != $pv && $ck != date('Y-m-d', strtotime($pk) + 86400 + 3600)) { $d[++$i][0] = $ck; } $pv = $cv; $pk = $ck; next($h); } print_r($d);
?>
|