Как найти ближайший день недели в php?

Как найти speciefic ближайший день недели в PHP, если первоначально у меня есть строка даты как: 07.05.2010? Например, я хочу найти ближайшее в воскресенье (или любой день недели). Как я могу реализовать это?Спасибо

10
задан moogeek 6 May 2010 в 21:04
поделиться

3 ответа

Это должно сделать:

echo date('d.m.Y', strtotime('next Sunday', strtotime('07.05.2010')));
9
ответ дан 3 December 2019 в 15:35
поделиться

strtotime волшебно

echo date("d/m/y", strtotime("next sunday", strtotime("07.05.2010")  ) );
0
ответ дан 3 December 2019 в 15:35
поделиться

На всякий случай, если вам нужен ближайший день, а не следующий, вот способ сделать это.

$target = "Sunday";
$date   = "07.05.2010";

// Old-school DateTime::createFromFormat
list($dom, $mon, $year) = sscanf($date, "%02d.%02d.%04d");
$date = new DateTime("$year/$mon/$dom -4 days");
// Skip ahead to $target day
$date->modify("next $target");

echo $date->format("d.m.Y");

А начиная с PHP 5.3, эта средняя часть может быть просто

$date = DateTime::createFromFormat("!d.m.Y", $date)
        ->modify("-4 days")->modify("next $target");
16
ответ дан 3 December 2019 в 15:35
поделиться