Portál AbcLinuxu, 12. května 2025 00:59
function sqlTOdate($s_datum){ $pole=(explode("-",$s_datum)); $n_datum=$pole[2].".".$pole[1].".".$pole[0]; return $n_datum; }Vyrobil som si to ako prevod dátumu formátu YYYY-MM-DD (ktorý je uložený v MySQL) do formátu DD.MM.YYYY, ktorý vypisujem na stránke. Keď použijem túto funkciu raz, všetko je v poriadku. Akonáhle ju ale vyvolám ďalej v kóde opäť, už mi to skončí s chybou "Notice: Undefined offset: 2 in...". Zaujímavé pritom je to, že prevod prebehne a aj sa správne zobrazí na stránke. Obidva dátumy, ktoré sú uložené v databáze som kontroloval a obidva sú v rovnakom formáte. Vedel by mi niekto poradiť, kde je problém? Vopred vďaka.
Řešení dotazu:
function sqlTOdate($s_datum) { $pole=(explode('-',$s_datum)); if(count($pole) != 3) echo "Error date convert, input date: '$s_datum'<br />\n"; $n_datum=$pole[2].'.'.$pole[1].'.'.$pole[0]; return $n_datum; }
function sqlTOdate($s_datum){ return preg_replace('/^([\d]{4})-([\d]{1,2})-([\d]{1,2})$/', '$3.$2.$1', $s_datum); }
Podla mna staci jeden riadok:
$n_datum = date('d.m.Y', strtotime($s_datum));
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.