Autor Zpráva
Tomasecekkkk
Profil *
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
<?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
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 *
nightfish

Diky moc, byla to rychlost, párada. Funguje :-)
Tomasecekkkk
Profil *
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
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
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 *
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

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0