Как получить дату следующего дня недели на следующей неделе?

Пользователем вводится число дня в неделе (0 - воскресенье, 1 - понедельник и тд). Если текущий день недели > или = введённому, то мы берём дату из следующей недели. Как в modify передать введённый номер дня недели, а не название? Сделал через switch, но как обойтись без него? Может получать format('l') или format('w') следующей недели?

$dayWeek = $_POST['numberDay'];
$nextDay = new \DateTime();
$numberDayWeek = $nextDay->format('w');
switch ($dayWeek){
  case "0":
    $nameWeekDay = "sunday";
    break;
  case "1":
    $nameWeekDay = "monday";
    break;
  case "2":
    $nameWeekDay = "tuesday";
    break;
  case "3":
    $nameWeekDay = "wednesday";
    break;
  case "4":
    $nameWeekDay = "thursday";
    break;
  case "5":
    $nameWeekDay = "friday";
    break;
  case "6":
    $nameWeekDay = "saturday";
    break;
                
}
if(($numberDayWeek > $dayWeek) || ($numberDayWeek == $dayWeek)){
  $nextDay->modify("$nameWeekDay next week");
}
$nextDay = $nextDay->format("Y-m-d");

Ответы (1 шт):

Автор решения: Daniel Protopopov
<?php

 $dowMap = array('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday');
 $inputDay = 0; // Sunday

 echo date('Y-m-d', strtotime('next ' . $dowMap[$inputDay]));
→ Ссылка