Специалисты Проверьте пожалуйста, правильный ли это код, и не возникнет ли ошибки Код (Text): // Подписка $q = mysqli_query($base, "SELECT end_date FROM follows WHERE user_login='".$data['user_login']."'"); $foll = mysqli_fetch_array($q); // if (isset($foll['end_date'])) { $yfoll = 1; } else { $yfoll = 0; } // Разбитие даты d.m.Y $date = $foll['end_date']; $udate = date("d.m.Y"); $un_date = date_parse_from_format("d.m.Y", $udate); // Время сейчас $n_date = date_parse_from_format("d.m.Y", $date); // Время до которого действует $stop = 0; // Проверка подписки if ($un_date['year'] > $n_date['year']) { $stop = 1; } else { if ($un_date['month'] > $n_date['month']) { $stop = 1; } else { if ($un_date['day'] >= $n_date['day']) { $stop = 1; } } } if ($stop == 1) { echo 'Подписка кончилась'; } Замысел в том, что надо проверить действие "платной" подписки. Если сейчас дата больше чем дата в базе, выставить $stop = 1. Да и вообще, будьте добры, подскажите, как улучшить этот кусок кода
ппц... Что мешает в самом запросе добавить Код (Text): SELECT IF(end_date>NOW(),1,0 AS subscribe .... и потом без долгих и непонятных сравнений просто выводить данный флаг или деоать что нужно
отсутствие знаний sql + вот в инете решение себе нашел ,всем спасибо Код (Text): // Время до конца подписки $met = '10.10.2017'; $metTS = strtotime($met); // echo "Вы ввели время - " . strftime("%d-%m-%Y", $metTS) . "<br />"; // echo "Текущее время - " . strftime("%d-%m-%Y") . "<br />"; $sub = $metTS - time(); if ($sub < 0) { $ban = 1; // Подписка закончилась echo 'кончилась'; } elseif ($sub > 0) { $ban = 0; // Подписка действует echo 'действует'; } else { $ban = 2; // Подписка заканчивается сегодня echo 'сегодня!'; } $sub = abs($sub); $days = (int)($sub / (24*60*60)); $hours = (int)(($sub - $days * 24 * 60 * 60) / (60*60)); $min = (int)(($sub - $days * 24 * 60 *60 - $hours * 60 * 60) / 60); $sec = $sub - $days * 24 * 60 *60 - $hours * 60 * 60 - $min * 60; echo "<br/>осталось $days<br />\n";