Поиск первого дня недели через php

Возможный дубликат:
Получить первый день недели в PHP?

Здравствуй,

Я хочу найти первую и последнюю дату текущей недели и на прошлой неделе. Аналогичным образом я хочу найти первую и последнюю дату текущего месяца и в прошлом месяце.

Это нужно сделать в PHP. Пожалуйста помоги.

strtotime достаточно силен с относительными форматами времени :

 strtotime('monday this week'); strtotime('sunday this week'); strtotime('monday last week'); strtotime('sunday last week'); 

(это работает только с PHP 5.3+)

 strtotime('first day of this month'); strtotime('last day of this month'); strtotime('first day of last month'); strtotime('last day of last month'); 

Чтобы получить первую и последнюю дату месяца в PHP <5.3, вы можете использовать комбинацию mktime и date ( date('t') дает количество дней месяца):

 mktime(0,0,0,null, 1); // gives first day of current month mktime(0,0,0,null, date('t')); // gives last day of current month $lastMonth = strtotime('last month'); mktime(0,0,0,date('n', $lastMonth), 1); // gives first day of last month mktime(0,0,0,date('n', $lastMonth), date('t', $lastMonth); // gives last day of last month 

Если вы хотите получить строку для презентации, вам не нужно mktime :

 date('Ym-1'); // first day current month date('Ym-t'); // last day current month date('Ym-1', strtotime('last month')); // first day last month date('Ym-t', strtotime('last month')); // last day last month 

Вот функция для первого и последнего дня недели:

 function week_start_date($wk_num, $yr, $first = 1, $format = 'F d, Y') { $wk_ts = strtotime('+' . $wk_num . ' weeks', strtotime($yr . '0101')); $mon_ts = strtotime('-' . date('w', $wk_ts) + $first . ' days', $wk_ts); return date($format, $mon_ts); } $sStartDate = week_start_date($week_number, $year); $sEndDate = date('F d, Y', strtotime('+6 days', strtotime($sStartDate))); 

Вероятно, его можно адаптировать и к месяцу, но я хотел получить свой ответ! 🙂