$signsstart = [1=>21, 20, 20, 20, 20, 20, 21, 22, 23, 23, 23, 23];помогло, но 12 месяц все равно не правильно считает. "21, 20, 20, 20, 20, 20, 21, 22, 23, 23, 23, 23" - это числа месяца (они сейчас не правильно расставлены по гороскопу, но сейчас не в этом суть), в последнем коде делается разрыв 12 месяца и 1 - вот так 1222 (22 декабря) до 1231 (31 декабря), и потом 0101 (1 января) до 0119 (19 января), хотя это и один зодиакальный месяц. В этом же коде этого нет и возможно именно это и является причиной некорректного подсчета. |
Не копируйте код как есть, то есть выбрасывайте из него необдуманное, и тогда проблем меньше будет.
Функция strtotime преобразовывает дату в штамп времени, и как при этом она будет написана, дд.мм.гггг или дд-мм-гггг, или гггг.мм.дд, или гггг-мм-дд, или еще как либо, это не важно. Данная функция также корректно преобразует и английскую нотацию в метку времени. Вот это $day = str_replace("-","",substr($data,5)); выбросить заменив на: $date = date_parse($date); if(!$date['errors']) { $day = $date['month'] . $date['day']; //дальше по коду } Не копируйте код, читайте о функциях. |
Часовой пояс GMT +3, время: 00:49. |