2017-01-07 2 views
-1

Я хочу создать список дат дня недели с названием дня недели. Если сегодня понедельник - 2017-01-02 (Y-м-д), то я хочу, чтобы список, чтобы быть что-то вроде этого:php текущие дни недели с датой

  • пн-02 | Tue-03 | Ср-04 | Thu-05 | Fri-06 | Сб-07 | Sun-08

Мой код ниже даст такой результат, если сегодня по понедельникам. Это то, что у меня есть до сих пор.

function NextDayDate($day) { 
     return new DateTime('next ' . $day); 
    } 

    $dt = new DateTime(); 
    $today=date("l"); 

    if ($today=="Monday") { 
     echo $dt->format('d'); // Todays date 
     echo '</br>'; 
    } 
    elseif ($today!="Monday"){ 
     echo '</br>'; 
     $nextMonday = NextDayDate('Monday'); 
    echo $nextMonday->format('d'); // Next date 
    echo '</br>'; 
    } 
if ($today=="Tuesday") { 
     echo $dt->format('d'); // Todays date 
     echo '</br>'; 
    } 
    elseif ($today!="Tuesday"){ 
     echo '</br>'; 
     $nextMonday = NextDayDate('Tuesday'); 
    echo $nextMonday->format('d'); // Next date 
    echo '</br>'; 
    } 

Если сегодня вторник, то в понедельник у меня будет пн-09, потому что дата следующего понедельника.

  • Пн-09 | Tue-03 | Ср-04 | Thu-05 | Fri-06 | Сб-07 | Sun-08

Я хочу сохранить дату последних дней, чтобы список не изменился.

Возможно, есть способ получить текущие имена дней недели с датой?

ответ

0

Это намного проще:

$a = new DateTime(); 
$oneDay = new DateInterval("P1D"); 
// Here you add one day to your date until it will Monday 
while ($a->format('D') != 'Mon') { 
    $a->add($oneDay); 
} 
// Here you print 7 days from your target Monday 
for ($i = 0; $i < 7; $i++) { 
    echo $a->format("D-d"); 
    $a->add($oneDay); 
} 
+0

Спасибо! Я новичок в этом. – lyraX

Смежные вопросы