Как найти speciefic ближайший день недели в PHP, если первоначально у меня есть строка даты как: 07.05.2010
? Например, я хочу найти ближайшее в воскресенье (или любой день недели). Как я могу реализовать это?Спасибо
Это должно сделать:
echo date('d.m.Y', strtotime('next Sunday', strtotime('07.05.2010')));
strtotime волшебно
echo date("d/m/y", strtotime("next sunday", strtotime("07.05.2010") ) );
На всякий случай, если вам нужен ближайший день, а не следующий, вот способ сделать это.
$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");