dimonbes
Новичок
Функция вычисления предыдущей даты
Доброго всем времени суток!
Моя цель была такая - на странице администратора выводить сообщения с сортировкой: такие-то сообщения пришли сегодня (и только сегодня), такие-то - вчера, а после все сообщения скопом. Вобщем задача общераспрстаненная.
Надо было показать мускулу, что следует выводить только сообщения за вчерашний день, следовательно, построить само РНР-описание вчерашней даты. Я с ходу заделал следующую идиотскую функцию:
function prev_date_calculate()
{
$my_month=date("m");
$my_month=$my_month-1;
$my_date2=date("d");
$my_date2=$my_date2-1;
if($my_date2 != 0) //если предид. число месяца - не первое
$my_prev_date=date("Y-m-$my_date2");
else // далее полная %опа
{
if($my_month=="02") // пред. песяц - февраль
{
$my_date2=$my_date2+28;
$my_prev_date=date("Y-$my_month-$my_date2");
}
else
{ // в пред. песяце - 31 день
if(($my_month=="01") ||($my_month=="03") ||($my_month=="05") ||($my_month=="07") ||($my_month=="08") ||($my_month=="10") ||($my_month=="12"))
{
$my_date2=$my_date2+31;
$my_prev_date=date("Y-$my_month-$my_date2");
}
else // в пред. песяце - 30 дней
{
$my_date2=$my_date2+30;
$my_prev_date=date("Y-$my_month-$my_date2");
}
}
}
return $my_prev_date;
}
Мне кажется, что для такой тривиальной задачи я слишком все усложнил, а я с детства НЕНАВИЖУ длинный код. Может, есть какая-нить стандартная функция РНР или мускула для вычисления пред. даты, или хотябы мою можно упростить???
ЗЫ. Функция рабочая
Доброго всем времени суток!
Моя цель была такая - на странице администратора выводить сообщения с сортировкой: такие-то сообщения пришли сегодня (и только сегодня), такие-то - вчера, а после все сообщения скопом. Вобщем задача общераспрстаненная.
Надо было показать мускулу, что следует выводить только сообщения за вчерашний день, следовательно, построить само РНР-описание вчерашней даты. Я с ходу заделал следующую идиотскую функцию:
function prev_date_calculate()
{
$my_month=date("m");
$my_month=$my_month-1;
$my_date2=date("d");
$my_date2=$my_date2-1;
if($my_date2 != 0) //если предид. число месяца - не первое
$my_prev_date=date("Y-m-$my_date2");
else // далее полная %опа
{
if($my_month=="02") // пред. песяц - февраль
{
$my_date2=$my_date2+28;
$my_prev_date=date("Y-$my_month-$my_date2");
}
else
{ // в пред. песяце - 31 день
if(($my_month=="01") ||($my_month=="03") ||($my_month=="05") ||($my_month=="07") ||($my_month=="08") ||($my_month=="10") ||($my_month=="12"))
{
$my_date2=$my_date2+31;
$my_prev_date=date("Y-$my_month-$my_date2");
}
else // в пред. песяце - 30 дней
{
$my_date2=$my_date2+30;
$my_prev_date=date("Y-$my_month-$my_date2");
}
}
}
return $my_prev_date;
}
Мне кажется, что для такой тривиальной задачи я слишком все усложнил, а я с детства НЕНАВИЖУ длинный код. Может, есть какая-нить стандартная функция РНР или мускула для вычисления пред. даты, или хотябы мою можно упростить???
ЗЫ. Функция рабочая