Задача: Дан инпут и кнопка. В этот инпут вводится дата рождения в формате '31.12'. По нажатию на кнопку выведите знак зодиака пользователя.
Решение:
<form action="" method="POST">
<input type="text" name="date" placeholder="Введите дату: dd.mm">
<input type="submit">
</form>
$signs = [1 => "Козерог", "Водолей", "Рыбы", "Овен", "Телец", "Близнецы", "Рак", "Лев", "Девы", "Весы", "Скорпион", "Стрелец"];
$signs_date = [1 => 21, 20, 20, 20, 20, 20, 21, 22, 23, 23, 23, 23];
if (isset($_REQUEST['date'])) {
$date = $_REQUEST['date'];
$date = explode('.', $date);
$day = $date[0];
$month = $date[1];
if (substr($month, 0, 1) == 0) {
$month = substr($month, 1, 2);
}
if ($day > $signs_date[$month]) {
$a = $signs[$month + 1];
} else {
$a = $signs[$month];
}
if ($a == 13) {
echo $signs[1];
} else {
echo $a;
}
}
Проблема: Если подставить 31.12, то условие php if ($day > $signs_date[$month])
не срабатывает. Почему это происходит?
У Вас в $signs[$month + 1];
При использовании последнего месяца появляется 13-ая позиция(ключ), а в массиве их только 12.
Используйте это:
$signs = [1 => "Козерог", "Водолей", "Рыбы", "Овен", "Телец", "Близнецы", "Рак", "Лев", "Девы", "Весы", "Скорпион", "Стрелец"];
$signs_date = [1 => 21, 20, 20, 20, 20, 20, 21, 22, 23, 23, 23, 23];
if (isset($_REQUEST['date'])) {
$date = $_REQUEST['date'];
$date = explode('.', $date);
$day = $date[0];
$month = $date[1];
if (substr($month, 0, 1) == 0) {
$month = substr($month, 1, 2);
}
if ($day > $signs_date[$month]) {
if ($month == "12"){
$month = "0";
}
$a = $signs[$month + 1];
} else {
$a = $signs[$month];
}
if ($a == 13) {
echo $signs[1];
} else {
echo $a;
}
}
?>
<form action="" method="POST">
<input type="text" name="date" placeholder="Введите дату: dd.mm">
<input type="submit">
</form>
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Подскажите пожалуйста, как я могу оптимизировать такой код? Знаю, что как-то можно не писать кучу классов и id, а использовать переменную thisОднако,...
друзья! Помогите решить вопросСуть, у меня есть инпут, куда пользователь вводит слова и по нажатию на кнопку, они записываються в строку , также...