как я могу получить 1-й день недели с текущей даты - PullRequest
0 голосов
/ 09 февраля 2011

Я хотел бы получить 1-ую дату недели?
то есть.

 if 2011-01-01 then 2011-01-01  
    if 2011-01-06 then 2011-01-01  
    if 2011-01-20 then 2011-01-14  
    if 2011-01-21 then 2011-01-21 

Извините, что ввел в заблуждение и запутал вопрос.1-й день недели, т.е.или 1 или 7 или 14 или 21 или 28

Ответы [ 4 ]

2 голосов
/ 09 февраля 2011

Самый простой способ - вычесть число дней недели (0 = воскресенье для 'w', 1 = понедельник для 'N') в днях с даты:

$date = strtotime('2011-02-09');
$sunday = strtotime('-' . date('w', $date) . ' days', $date);
$monday = strtotime('-' . (date('N', $date) - 1) . ' days', $date);
2 голосов
/ 09 февраля 2011

Если вы считаете понедельник первым днем ​​недели

echo date('Y-m-d',strtotime("last monday", strtotime('tomorrow',strtotime($date))));

Вы можете заменить monday на любой день недели.

0 голосов
/ 09 февраля 2011
$current_date =date('Y-m-d'); 

$year = date('Y');
$month = date('m');
$day = date('d');

$first_day = get_week_start($year, $month, $day);

$weeks_first_day =date('Y-m-d',$first_day);


    function get_week_start($year, $month, $day)
    {
    $timestamp = mktime(0, 0, 0, $month, $day, $year);
    return $timestamp = mktime(0, 0, 0, $month, date('d', $timestamp)-date('w', $timestamp), $year);
    }

вы можете получить недели в первый день от $ days_first_day, вы также можете изменить формат, что когда-либо!

здесь воскресенье - дата начала

0 голосов
/ 09 февраля 2011
$wk_day=date('w');
switch ($wk_day)
{
  case 0:  $diff = -1;        break;
  case 1:  $diff = 0;         break;
  default :$diff = $wk_day-1; break;
}
echo date('Y-m-d', time()-(86400*$diff));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...