Użytkownik dodaje parametr, po jakim czasie ma się artykuł usunąć np. w dniach.
Teraz zapisujesz to do bazy danych.
Przy pobieraniu artykułów, sprawdzasz, czy różnica Czasów jest <= czasu wygaśnięcia artykułu, np.
function roznicaCzasow($r,$m,$d,$h,$i,$s,$R,$M,$D,$H,$I,$S){
$dni[0]=$dni[12]=31; $dni[1]=28; $dni[2]=31; $dni[3]=30; $dni[4]=31; $dni[5]=30; $dni[6]=31; $dni[7]=31; $dni[8]=30; $dni[9]=31; $dni[10]=30; $dni[11]=31;
$roznica=0;
if($R<$r || ($R==$r && $M<$m) || ($R==$r && $M==$m && $D<$d))return "Bł?d: próba podróży w czasie niemożliwa!";
if(!przestepny($R) && $M==1 && $D==29)return "Bł?d: docelowa data nie istnieje!";
if($r<$R){
$_s=$_i=$_h=$ileDniMinelo=0;
$_d=$_m=1;
while($_m<$m){
$ileDniMinelo+=60*60*24*$dni[++$_m-(!(przestepny($r) && $_m==2))];
}
$ileDniMinelo+=60*60*24*($d-$_d);
$ileDniMinelo+=60*60*($h-$_h);
$ileDniMinelo+=60*($i-$_i);
$ileDniMinelo+=$s-$_s;
$s=$i=$h=0;
$d=$m=1;
$roznica+=(365+przestepny(++$r-1))*24*60*60-$ileDniMinelo;
}
while($r<$R){
$roznica+=(365+przestepny(++$r-1))*24*60*60;
}
while($m<$M){
$roznica+=60*60*24*$dni[++$m-(!(przestepny($r) && $m==2))];
}
$roznica+=60*60*24*($D-$d);
$roznica+=60*60*($H-$h);
$roznica+=60*($I-$i);
$roznica+=$S-$s;
return $roznica;
}
function przestepny($rok){
return (!$rok%4 && !(!$rok%100 && $rok%400))?1:0;
}
$r=$datanapisaniapostu[0].$datanapisaniapostu[1];
$m=$datanapisaniapostu[2].$datanapisaniapostu[3];
$d=$datanapisaniapostu[4].$datanapisaniapostu[5];
$h=$datanapisaniapostu[6].$datanapisaniapostu[7];
$i=$datanapisaniapostu[8].$datanapisaniapostu[9];
$s=$datanapisaniapostu[10].$datanapisaniapostu[11];
// $datanapisaniapostu zawiera datę, kiedy post został napisany w formie rrmmddhhiiss, gdzie rr - rok%100, mm - miesiąc, dd - dzień, hh - godzina, ii - minuty, ss - sekundy.
// $limit zawiera liczbę dni, ile artykuł jest aktywny, jest liczbą naturalną
// i teraz warunek:
if(roznicaCzasow($r,$m,$d,$h,$i,$s,$R,$M,$D,$H,$I,$S)<=60*60*24*$limit){
// wyswietl artykuł
} else {
// nie wyświetlaj
}
edit: Poprawiłem linijkę, bo wdarła się literówka. Tak to jest, jak się pisze na pół przytomnym.
Ten post edytował benio101 11.01.2011, 15:35:57