Я хочу создать систему светофоров , которая сообщит мне, сколько дней осталось до тех пор, пока документ не достигнет срока действия. Я хочу, чтобы он был отмечен цветами в моем html.
Я также хочу отобразить текст, рассказывая мне, сколько дней до истечения срока действия. Дата истечения срока действия исходит из моей базы данных в области, называемой insurance_date
Heres my code Я новичок в php, поэтому стараюсь скомпоновать код, если кто-то может показать мне, как реструктурировать мой код, чтобы добиться того, что я пытаюсь сделать id be greatful, спасибо.
мой код:
<?php include 'config.php'; $data = mysql_query("SELECT * FROM supplier_stats") or die(mysql_error()); while($info = mysql_fetch_array( $data )) { echo "<p>Insurance Expires ! - <font color=\"red\">".$info['insurance_date'] . "</font></p>"; } $date_diff = 60*60*24*7; // 7 days // time()+$date_diff will be a timestamp 7 days in the future if ($info['insurance_date'] < time()+$date_diff) { echo "less than 7 days left!"; }
В цикле while вы перебираете все записи в таблице supplier_stats
. Для каждой итерации вы выводите "<p>Insurance Expires ! ...
Вы, вероятно, не хотите этого делать. Отредактируйте свой запрос, чтобы выбрать только те записи, которые истекают в вашем диапазоне.
Пример:
SELECT * FROM supplier_stats WHERE insurance_date >= yourDateToCompareTo
В зависимости от того, как вы создали свою базу данных, insurance_date
может быть «Тип MySQL DATE или String или даже Integer. В зависимости от этого вы должны сделать Comparsion, чтобы проверить, приближается ли дата к вашему диапазону истечения срока действия.
После вашего цикла ( закрытого }
) вы все равно будете использовать $info
в вашем if ($info['insurance_date']
который будет использовать только LAST-запись в вашей таблице.
Это, тем не менее, очень, очень простой вопрос, и я бы посоветовал вам ознакомиться с некоторыми базовыми учебниками для начинающих, которые можно легко найти с помощью поисковой системы Интернета .
Я предполагаю, что $info['insurance_date']
является строкой datetime в формате YYYY-mm-dd HH:ii:ss
, правильно?
Если это так, вам нужно запустить его через strtotime
прежде чем сравнивать его с числовым временем ( time()+$date_diff
)