Функция поиска последнего дня недели (вроде правильно выразился :) )
все работает, за исключением если не нестает новый год)

function search_last_day_of_week($num_day,$format,$today) // format -> d.m.y('7.5.09') or j.n.y('7.5.09')
{

//echo date('d.m.y', strtotime("last Thursday"));

/*
Функция поиска последнего дня недели ($num_day)

Данный код выведет, когда был последний вторник
учитывая текущую дату в формате date('d.m.y');

$today, если 1 то учитывать текущий день как последний

примеры для параметра $num_day
1 => Понедельник
2 => Вторник
3 => Среда
4 => Четверг
5 => Пятница
6 => Суббота
0 => Воскресенье

by ENTER (icq - 633748)
*/
    if ($num_day < 0 || $num_day > 6 || is_numeric($num_day) == FALSE)
	{
	    exit('Number of day of week is incorrectly entered');
	}
    for ($i=date('j');$i>0;$i--)
    {
        if (date("w", mktime (0,0,0,date('n'),$i,date('Y'))) == $num_day)
        {
		    if ($today == 1)
		    {
		        if (date("w") == $num_day)
			    {
			        $i=$i-7;
		        }
		    }
			$end_number_ch = $i;
			break;
        }
    }
    if ($end_number_ch == '')
    {
        for ($i=date('t');$i>0;$i--)
        {
            if (date("w", mktime (0,0,0,date('n')-1,$i,date('Y'))) == $num_day)
            {
		        $end_number_ch = $i;
			    break;

            }
        }
        $mounth_inc = date('n')-1; //mounth -1
        if ($format == "j.n.y")
		{
            $return = "$end_number_ch.$mounth_inc.".date('y');  //'j.n.y' = > 7.5.09
        }
        else if ($format == "d.m.y")
        {
            if ($mounth_inc			{
		        $mounth_inc="0$mounth_inc";
		    }
		    if ($end_number_ch 7.5.09
        }
        else
		{
            exit('Date is incorrectly entered');
        }
    }
    else
    {
        $mounth_inc = date('n');
        if ($format == "j.n.y")
        {
            $return = "$end_number_ch.$mounth_inc.".date('y');  //'j.n.y' = > 7.5.09
        }
        else if ($format == "d.m.y")
        {
            if ($mounth_inc			{
		        $mounth_inc="0$mounth_inc";
		    }
		    if ($end_number_ch 7.5.09
        }
        else
		{
            exit('Date is incorrectly entered');
        }
    }
  return $return;
}
print search_last_day_of_week(4,"d.m.y",1);//example
?>

Комментарии (2)

You must be logged in to leave a reply.