Валидност на новина

ludasam

Registered
Някой може ли да ми каже как да направя при пускане на новината от даден потребител да има select меню, с което да се определя валидността на новината?
html кода
Код:
 <select name="valid">
     <option value="365">1 година</option>
     <option value="182">6 месеца</option>
     <option value="90">3 месеца</option>
    </select>

и искам при показване на резултата тези новини , които са изтекли да не се показват, как ще стане и самата заявка?

Предполагам трябва да имам и поле кога е добавена новина?
Имам поле в таблицата `news`
`date` varchar(250).....

записвам информацията: $date = date('d.m.y G:i');
под-този формат.
 
Пробвай си късмета в PHP/Mysql готови кодове :) Тука не се дават готови кодове, тук само могат да те посъветват как да го направиш, но да караш някой да ти го прави в тази секция си е наглост :)
 
Не искам готови кодове, а идея как се прави. А, ако някой от тук е нагъл то със сигурност не съм аз.

Въпроса, за да съм ОЩЕ по-точен е: как да изчисля дали е изминало времето ОТ 08.08.2011 (примерно) до 08.08.2012 (примерно) като записвам формата при добавяне така: date('d.m.y G:i');

А при добавянето за валидност: числото е 365 (напримерно - 1 година)

Тоест заявката как точно ще стане?
 
По-добре при запис си записвай в полето датата на изтичане на новината, но си направи полето timestamp, за да са ти по-лесни сметките.

например:
$validto = $_POST['valid'];
$expirationtime = time()+($validto*24*60*60);

след това имаш в timestamp стойност срока на изтичане, който си го записваш в базата и после при select-a казваш where date<now()
 
palex каза:
По-добре при запис си записвай в полето датата на изтичане на новината, но си направи полето timestamp, за да са ти по-лесни сметките.

например:
$validto = $_POST['valid'];
$expirationtime = time()+($validto*24*60*60);

след това имаш в timestamp стойност срока на изтичане, който си го записваш в базата и после при select-a казваш where date<now()
Мдам много си прав. Аз се обърках тотално..
Но след това да си направи 3 cron_jobs задачки. Едната да се изплънява на седмица, другата на месец и третира на година. Така ще проверява всяка седмица/месец/година за изтичане на новината. :?:
 
Обаче, когато напиша кода така:
$validate = "365";
$expirationtime = time()+($validate*24*60*60);
echo $expirationtime;
$date = date('d.m.Y', $expirationtime);
echo "<br/> $date";

Резултата е следния: 1344352693
07.08.2012

а, трябва да е:
08.08.2012 ?
 
е това е защото днешния ден още не е изтекъл - не схвана ли логиката - добави си просто още един ден:

$validate = $validate+1;

:)
 
palex каза:
е това е защото днешния ден още не е изтекъл - не схвана ли логиката - добави си просто още един ден:

$validate = $validate+1;

:)
Не това е, защото времето му не е като хората. :)

Напиши най-горе в файла:
PHP:
date_default_timezone_set('Europe/Sofia');
 
Това с датата, която се губи се дължи, 'щото месец Февруари се мени. 28/29..

Иначе май точната заявка ще е;
$time = time();
mysql_query("SELECT * FROM `table` WHERE validnodo > $time");
 

Back
Горе