Показать сообщение отдельно
  #8 (permalink)  
Старый 17.08.2017, 12:59
Профессор
Отправить личное сообщение для Sonya Посмотреть профиль Найти все сообщения от Sonya
 
Регистрация: 07.07.2016
Сообщений: 281

Вот этот корректно считает, но опять формат вывода даты нужен не 29-04-1993, как в коде, а 29.4.1993.
<?php
function znakZodiaka($data){
$day = str_replace("-","",substr($data,5));
$zodiak = array('ot' => array('0120','0219','0321','0421','0521','0622','0723','0823','0923','1024','1123','1222','0101'),
            'do' => array('0218','0320','0420','0520','0621','0722','0822','0922','1023','1122','1221','1231','0119'),
                'zn' => array('Водолей','Рыбы','Овен','Телец','Близнец','Рак','Лев','Дева','Весы','Скорпион','Стрелец','Козерог','Козерог'));
$i = 0;
while (empty($znak) && ($i < 13)){
    $znak = (($zodiak['ot'][$i] <= $day) && ($zodiak['do'][$i] >= $day)) ? $zodiak['zn'][$i] : null;
    ++$i;
} return $znak;
}
echo znakZodiaka("2010-06-18");
?>
Ответить с цитированием