Как правильно сделать формат даты?

Нужно вывести вчера сегодня завтра именно в таком формате

06.05.2021 07.05.2021 08.05.2021

$d = date( "d" );
$m = date( "m" );
$Y = date( "Y" );
$d1 = date( "d" )+1;
$d2 = date( "d" )-1;

<div class="sh">0$d2.$m.$Y</div>
<div class="sh">$d.$m.$Y</div>
<div class="sh">0$d1.$m.$Y</div>

Чую, что этот код далеко не идеальный. С нолём перед датой дня проблемы.


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

Автор решения: Roman Grinyov

Сейчас всё чаще используют класс DateTime / DateTimeImmutable:

$datetime = new DateTimeImmutable();

$format = 'd.m.Y';

echo
  $datetime->modify('-1 day')->format($format) . "\n" .
  $datetime->format($format) . "\n" .
  $datetime->modify('+1 day')->format($format) . "\n";

https://php.net/class.datetimeimmutable

https://replit.com/@w3lifer/DiscreteOutlyingText

→ Ссылка