Есть ли способ найти день недели в php с определенной датой.Третий четверг месяца в php
Я не имею в виду
date('D', $timestamp);
я имею в виду, если я должен был поставить дату как 2010-10-21 было бы вернуть «третий четверг».
Есть ли способ найти день недели в 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"
Рабочий пример:
strtotime()
, кажется, понимает синтаксис. Вам просто нужно предоставить его в первый день месяца, о котором идет речь, в качестве отправной точки.
echo date("d.m.Y", strtotime("third thursday", mktime(0,0,0,10,1,2010)));
// Will output October 21
echo date("d.m.Y", strtotime("third thursday", mktime(0,0,0,11,1,2010)));
// Will output November 18
Я думаю, что вы получили это неправильный путь вокруг, он хотел 'date => буквальное представление', а не' literalпредставление => дата'. –
@ Тату, ты прав, я неправильно понял. –
Пекка, спасибо за ваш ответ. это тоже помогает. – Jason
Вы имели в виду '$ weekday = date ('l', $ timestamp)'? – xtofl
Спасибо ... Это заставило меня двигаться в правильном направлении. – Jason
@xtofl, yup, fixed. @Pekka, спасибо! –