| 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: 18 let
|
|||
0