Помощь с кодом по основам работы с формой на PHP

Рейтинг: 0Ответов: 1Опубликовано: 11.03.2023

Задание: С помощью формы спросите у пользователя год. После отправки определите, этот год високосный или нет. Сделайте так, чтобы при первом заходе на страницу в инпуте уже стоял текущий год.

Вот код, который у меня получился:

<form action="" method="GET">
    <input
        name="Year"
        value="<?php
            if (isset($_GET['Year']))
                echo $_GET['Year'];
            else echo date('Y') 
        ?>"
    >
    <input type="submit">
</form>
<?php if(!empty($_GET['Year'])){
    echo date('L', strtotime($_GET['Year']));
} ?>

Но какую бы дату я ни вводил, результат получается 0 - то есть год не високосный. У меня есть подозрение, что это определяется ещё до того, как я ввожу данные (то есть для текущего года) и после не обновляется, но что сделать чтобы исправить это я не понимаю.

Ответы

▲ 0Принят

Есть функция checkdate(), она может проверить, есть ли дата в календаре. Проверьте ей, есть ли 29 февраля нужного года:

checkdate(2, 29, $year)

например вот такое решение:

if(!empty($_GET['Year'])) {
    $year = intval($_GET['Year']);
    if(checkdate(2, 29, $year)) {
        echo "Год $year - високосный";
    } else {
        echo "Год $year - не високосный";
    }
}