Третий четверг месяца в php

Есть ли способ найти день недели в php с определенной датой.

Я не имею в виду

date('D', $timestamp); 

Я имею в виду, если бы я должен был предоставить дату, например, 2010-10-21, она вернется «в третий четверг».

Не напрямую, для этого вам нужна вспомогательная функция:

 function literalDate($timestamp) { $timestamp = is_numeric($timestamp) ? $timestamp : strtotime($timestamp); $weekday = date('l', $timestamp); $month = date('M', $timestamp); $ord = 0; while(date('M', ($timestamp = strtotime('-1 week', $timestamp))) == $month) { $ord++; } $lit = array('first', 'second', 'third', 'fourth', 'fifth'); return strtolower($lit[$ord].' '.$weekday); } echo literalDate('2010-10-21'); // outputs "third thursday" 

Рабочий пример:

http://codepad.org/PTWUocx9

strtotime() понимает синтаксис. Вам просто нужно предоставить его в первый день месяца, о котором идет речь, в качестве отправной точки.

  echo date("dmY", strtotime("third thursday", mktime(0,0,0,10,1,2010))); // Will output October 21 echo date("dmY", strtotime("third thursday", mktime(0,0,0,11,1,2010))); // Will output November 18