Autor | Zpráva | ||
---|---|---|---|
Tomasecekkkk Profil * |
#1 · Zasláno: 2. 11. 2008, 19:07:05
Zdravim Vas, vyuzivam generovane vysledky nejakeho casu u kazdeho zaznamu. priklad:
9.11.2008 0:00:00 31.11.2008 0:00:00 Rad bych poprosil, jestli mi nekdo poradi jak tento cas "orezat" tak, ze se bude zobrazovat jen datum bez casu a dale kdyz bude generovany datum odpovidat datumu aktualnimu, ze se misto datumu zobrazi urcity text, napr. dnes. Orezavani jsem pouzival pres substr, ale bohuzel den 1-9 je bez zacinajici nuly :-( Diky moc za pripadnou radu Tom |
||
nightfish Profil |
#2 · Zasláno: 2. 11. 2008, 19:15:30 · Upravil/a: nightfish
<?php list($datum, $cas) = explode(" ", "9.11.2008 0:00:00"); if ($datum == date("j.n.Y")) echo "dnes"; else echo $datum; // alternativne by slo list($den, $mesic, $rok) = explode(".", $datum); // a tady porovnavat $den, $mesic a $rok ?> |
||
nightfish Profil |
#3 · Zasláno: 2. 11. 2008, 19:17:34
a další možností jsou regulární výrazy
if (preg_match("/^(\d+)\.(\d+)\.(\d+) (\d+):(\d+):(\d+)$/", "9.11.2008 0:00:00", $matches)) { list($cele, $den, $mesic, $rok, $hodiny, $minuty, $sekundy) = $matches; } |
||
Tomasecekkkk Profil * |
#4 · Zasláno: 2. 11. 2008, 19:21:25
nightfish
Diky moc, byla to rychlost, párada. Funguje :-) |
||
Tomasecekkkk Profil * |
#5 · Zasláno: 2. 11. 2008, 19:22:14
nightfish
preg_match - aha, dalsi varianta, ani me to nenapadlo, vyzkouset to pres to, ale ta prvni varianta se mi zda nejlepsi ;o) |
||
BetaCam Profil |
#6 · Zasláno: 2. 11. 2008, 19:44:04
Tomasecekkkk
Další možností je použití funkce date_parse() $datum = '2.11.2008 0:00:00'; if (date_parse($datum) == date_parse(date("j.n.Y"))) { echo 'dnes'; }else{ echo date_format( date_create($datum), "j.n.Y" ); } |
||
BetaCam Profil |
#7 · Zasláno: 2. 11. 2008, 20:00:59 · Upravil/a: BetaCam
Tomasecekkkk
Popřípadě pravděpodobně o něco rychlejší varianta s date_parse() $d = date_parse('3.11.2008 0:00:00'); if ($d['day'].'.'.$d['month'].'.'.$d['year'] == date("j.n.Y")) { echo 'dnes'; }else{ echo $d['day'].'.'.$d['month'].'.'.$d['year']; } Popřípadě by se tam dalo použít implode() Takováhle věc se dá udělat tak na 1000 způsobů. |
||
DoubleThink Profil * |
#8 · Zasláno: 2. 11. 2008, 20:08:58
Osobně bych volil nejjednodušší variantu: fci strtotime, která tvar 31.11.2008 0:00:00 pozná bez problémů. (Mimochodem listopad nemá 31 dní, výstupem zde by byl 1. prosinec.)
echo date('r',strtotime('31.11.2008 0:00:00')); // Mon, 01 Dec 2008 00:00:00 +0100 |
||
Časová prodleva: 15 let
|
0