Как найти день недели с даты с помощью PHP?

Если у меня есть $date YYYY-mm-dd и вы хотите получить определенный $day (заданный 0 (воскресенье) до 6 (суббота)) недели, в которой находится YYYY-mm-dd .

Например, если я получил 2012-10-11 как $date и 5 как $day , я хочу получить 2012-10-12 , если у меня есть 0 как $day , 2012-10-14

РЕДАКТИРОВАТЬ:
Большинство из вас неправильно поняли это. Я получил дату, $date и хочу получить день, указанный в 0-6 той же недели.

Так что нет, я не хочу день $date

Related of "Как найти день недели с даты с помощью PHP?"

Я думаю, это то, что вы хотите.

 $dayofweek = date('w', strtotime($date)); $result = date('Ym-d', strtotime(($day - $dayofweek).' day', strtotime($date))); 

Вы можете использовать функцию date ():

 date('w'); // day of week 

или

 date('l'); // dayname 

Пример функции для получения дня №:

 function getWeekday($date) { return date('w', strtotime($date)); } echo getWeekday('2012-10-11'); // returns 4 

Пытаться

 $date = '2012-10-11'; $day = 1; $days = array('Sunday', 'Monday', 'Tuesday', 'Wednesday','Thursday','Friday', 'Saturday'); echo date('Ym-d', strtotime($days[$day], strtotime($date))); 

Просто:

2012-10-11 как $ date и 5 как $ day

 <?php $day=5; $w = date("w", strtotime("2011-01-11")) + 1; // you must add 1 to for Sunday echo $w; $sunday = date("Ymd", strtotime("2011-01-11")-strtotime("+$w day")); $result = date("Ymd", strtotime($sunday)+strtotime("+$day day")); echo $result; ?> 

$ Result = '2012-10-12' – это то, что вы хотите.

Боюсь, вам нужно сделать это вручную. Получить текущий день недели, рассчитать смещение и добавить смещение к дате.

 $current = date("w", $date) $offset = $day - $current $new_date = new DateTime($date) ->add( new DateInterval($offset."D") )->format('Ym-d') 

Руководство PHP написало:

w Числовое представление дня недели

Поэтому вы можете построить дату с mktime и использовать в ней date("w", $yourTime);