Как узнать знак зодиака по дате рождения в PHP
Иногда бывает нужно автоматически узнать знак зодиака по дате рождения через PHP. В этой небольшой статье я покажу этот скрипт и постараюсь тщательно прокомментировать.
<?php
function getZodiacalSign($month, $day) {
$signs = array("Козерог", "Водолей", "Рыбы", "Овен", "Телец", "Близнецы", "Рак", "Лев", "Девы", "Весы", "Скорпион", "Стрелец");
$signsstart = array(1=>21, 2=>20, 3=>20, 4=>20, 5=>20, 6=>20, 7=>21, 8=>22, 9=>23, 10=>23, 11=>23, 12=>23);
return $day < $signsstart[$month + 1] ? $signs[$month - 1] : $signs[$month % 12];
}
echo getZodiacalSign(7, 11);
?>
В качестве параметров функция принимает месяц и число рождения, то есть те параметры, которые необходимы и достаточны для определения знака зодиака. Следующей строкой мы перечисляем все знаки зодиака и записываем их в массив.
В переменную signsstart мы записываем числа, соответствующие последнему дню предыдущего знака. Например, стрельцы заканчиваются 21-го числа (козероги начинаются 22-го числа), поэтому именно число 21 и идёт первым элементом. Козероги заканчиваются 20-го числа, соответственно, число 20 идёт вторым элементом и так далее.
Наконец, последней строкой мы определяем, попадает ли день рождения в следующий знак зодиака соответствующего месяца, если да, то возвращается знак под номером, соответствующим остатку при делении месяца на 12, а если нет, то возвращается предыдущий знак зодиака. Не забываем, что нумерация знаков идёт не с 1, а с 0!
В качестве тестового примера было выбрано 11 июля, а результатом работы данного скрипта была строка: "Рак", что соответствует действительности.
-
- Михаил Русаков
Комментарии (2):
Очень отличный урок, спасибо Михаил. Скрипт очень нужный.
Ответить
18 декабря он определил как Казерог, а на самом деле это Стрелец. Исправьте плиз
Ответить
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.