Создаем regexp для фильтрации дат отстоящих на +-3 года от заданой
кому надо тот переделает
$start = '15.07.1986';
$start = explode('.',$start);
$start = $start[2];
$start -=3;
$reg_f = array();
$reg_f[0] = floor($start/100); //Определяем век рождения
$reg_f[1] = floor(($start%100)/10); //Определям десятилетие
$reg_f[2] = ($start%10); //Определяем год
$start += 6;
$reg_l = array();
$reg_l[0] = floor($start/100); //Определяем век рождения
$reg_l[1] = floor(($start%100)/10); //Определям десятилетие
$reg_l[2] = ($start%10); //Определяем год
$delta = array_diff_assoc($reg_l,$reg_f);//определяем где разница
if (isset($delta[0])) //Люди с разных веков
$regexp .= '('.$reg_f[0].'|'.$reg_l[0].')';
else $regexp .= '('.$reg_f[0].')'; //Люди одного века
$des = array();
if (isset($delta[1]))//Разные десятилетия
{
for ($i=min($reg_l[1],$reg_f[1]);$i<=max($reg_l[1],$reg_f[1]);$i++)
$des[] = $i;
// $regexp.= '('.implode('|',$des).')';
}
else $regexp.='('.$reg_l[1].')'; //Одинаковые десятилетия
if (isset($delta[2])) //Разные года
{
if (empty($des)) //Если нам феерически везет и десителетия совпали
$regexp .= '['.$reg_f[2].'-'.$reg_l[2].']';
else //Здравствуй, невезуха
{
$des[0] .= '['.$reg_f[2].'-9]';
$des[1] .= '[0-'.$reg_l[2].']';
$regexp .= '('.implode('|',$des).')';
}
}
$regexp .= '/';
кому надо тот переделает
$start = '15.07.1986';
$start = explode('.',$start);
$start = $start[2];
$start -=3;
$reg_f = array();
$reg_f[0] = floor($start/100); //Определяем век рождения
$reg_f[1] = floor(($start%100)/10); //Определям десятилетие
$reg_f[2] = ($start%10); //Определяем год
$start += 6;
$reg_l = array();
$reg_l[0] = floor($start/100); //Определяем век рождения
$reg_l[1] = floor(($start%100)/10); //Определям десятилетие
$reg_l[2] = ($start%10); //Определяем год
$delta = array_diff_assoc($reg_l,$reg_f);//определяем где разница
if (isset($delta[0])) //Люди с разных веков
$regexp .= '('.$reg_f[0].'|'.$reg_l[0].')';
else $regexp .= '('.$reg_f[0].')'; //Люди одного века
$des = array();
if (isset($delta[1]))//Разные десятилетия
{
for ($i=min($reg_l[1],$reg_f[1]);$i<=max($reg_l[1],$reg_f[1]);$i++)
$des[] = $i;
// $regexp.= '('.implode('|',$des).')';
}
else $regexp.='('.$reg_l[1].')'; //Одинаковые десятилетия
if (isset($delta[2])) //Разные года
{
if (empty($des)) //Если нам феерически везет и десителетия совпали
$regexp .= '['.$reg_f[2].'-'.$reg_l[2].']';
else //Здравствуй, невезуха
{
$des[0] .= '['.$reg_f[2].'-9]';
$des[1] .= '[0-'.$reg_l[2].']';
$regexp .= '('.implode('|',$des).')';
}
}
$regexp .= '/';