Autor | Zpráva | ||
---|---|---|---|
EMP Profil |
#1 · Zasláno: 31. 1. 2011, 16:30:42
Mám takovýto skript na vypisování ze souboru testy.xml:
$xml=simplexml_load_file("testy.xml"); foreach ($xml->komentar as $komentar){ echo' <div class="nadpis-text"> <span>'; if ($komentar->schoolsubject=="Občanská výchova") {echo 'Občanská vých.';} else { echo $komentar->schoolsubject;} echo '</span></div> <div class="line-text"></div> <div class="koment"> <p class="koment-predmet">'; if ($komentar->subject != ""){echo 'Předmět: '.$komentar->subject;} echo '</p> <p class="koment-date">Datum testu: '.$komentar->den.'. '.$komentar->mesic.'. '.$komentar->rok.'</p><br> <p class="koment-message">'.$komentar->message.'</p> <p class="koment-odkaz">'; if ($komentar->odkaz != ""){echo 'Odkaz: <a href="'.$komentar->odkaz.'" target="_blank">'.$komentar->odkaz.'</a>';} echo '</p> </div> <div class="line-bottom"></div> <div class="podpis-text"> <span>'.$komentar->username.'</span></div> '; } Nešlo by nějak udělat, aby se toto vypsalo pouze, když reálné datum (datum u klienta na počítači) bude menší než "Datum testu"= $komentar->den + $komentar->mesic + $komentar->rok (řádek 11)? Děkuji za rady |
||
Taps Profil |
#2 · Zasláno: 31. 1. 2011, 17:11:59
EMP:
„Nešlo by nějak udělat, aby se toto vypsalo pouze,“ Určitě by to šlo. Stačí si zjistit datum vytvoření souboru testy.xml a tento datum porovnávat se současným datumem. |
||
Alphard Profil |
#3 · Zasláno: 31. 1. 2011, 17:52:30
Funkcí mktime() můžete snadno získat timestamp pro porovnání. Jestli není nějaký zvláštní důvod používat datum u klienta, vzal bych serverový čas.
|
||
EMP Profil |
#4 · Zasláno: 31. 1. 2011, 19:35:42
Taps:
Já nemyslím datum vytvoření souboru testy.xml, myslím tím datum vytvoření příspěvku zapsaného v $komentar->den + $komentar->mesic + $komentar->rok Alphard: „datum u klienta“ ne.. to klidně serverový čas vezmu... (to bylo jen pro vysvětlení) „Funkcí mktime() můžete snadno získat timestamp pro porovnání.“ Tu funkci jsem teda snad pochopil, ale nevím, jak to převést do praxe, jsem v php začátečník, tak jestli byste mi nemohli poradit trochu konkrétněji. Díky |
||
Alphard Profil |
#5 · Zasláno: 1. 2. 2011, 00:16:39
EMP:
Není co řešit, dle manuálu dosadíte parametry, funkce vám vrátí timestamp data. Aktuální timestamp získáte pomocí time(). Pak stačí porovnat if (time() < mktime()) |
||
EMP Profil |
#6 · Zasláno: 1. 2. 2011, 17:48:29
Alphard:
Díky, napsal jsme to takhle: foreach ($xml->komentar as $komentar){ $maxdate = "2011-$komentar->mesic-$komentar->den"; if (date('Y-m-d') < date($maxdate)) { echo'nějaký text'; } } Ale když si nechám vypsat čas funkcí time(), napíše mi to 1296578835, pomůžete mi to rozluštit? :-) |
||
Alphard Profil |
#7 · Zasláno: 1. 2. 2011, 19:31:11
date($maxdate) nedává smysl.
„napíše mi to 1296578835, pomůžete mi to rozluštit?“ To je timestamp (stačí hledat). Není třeba ho luštit, jen porovnat. if (time() < mktime(0, 0, 0, (int) $komentar->mesic, (int) $komentar->den, (int) $komentar->rok)) |
||
EMP Profil |
#8 · Zasláno: 1. 2. 2011, 20:06:50
Alphard:
„date($maxdate) nedává smysl.“ ...sry, to jsem trochu pomotal mělo to být takto: foreach ($xml->komentar as $komentar){ $komdate = "2011-$komentar->mesic-$komentar->den"; $maxdate = "2011-09-01"; if ((date('Y-m-d') < $komdate) AND ($komdate < $maxdate)) { echo'nějaký text'; } } Ale udělal jsem to jak říkáš... Díky moc |
||
Časová prodleva: 13 let
|
0