Вы проверяете целое число в ваших утверждениях if, что приводит нас к предположению, что знак %
в вашем формате не требуется.
Хотя не запрещено включать литералы, такие как %
, в строку формата, они не имеют никакого семантического значения, они просто обрабатываются как обычный символ процента. Это означает, что результатом вашего format()
будет, например, '%19'
, который не является числовой строкой и не может быть сравнен с целым числом. Ваше заявление if всегда будет неудачным.
Если ожидаемый результат был '19'
, числовая строка, то вы можете просто удалить %
из строки формата.
$dto = new \DateTime('now');
if($dto->format("y") == 20) {