Autor Zpráva
nightrider
Profil
Mám problém s převodem datumu s tabulky. V databzi to mám jako timestamp 2009-01-01 14:00:00:00 potrebuju to dat do formatu 1.1.2009 ale nevim uz jak dal. Vsechny navody co jsem nasel jsem uz testnul,ale at udelam co chci, tak se format ani nepohne. Děkuju za rady
AM_
Profil
nejlepší je použít SQL funkce date_format pro výběr přímo v požadovaném formátu nebo unix_timestamp pro výběr datetime pole jako timestamp
nightrider
Profil
Jsem se musel zasmat jak jsem pitomej. Mam tam uz hodne radku a psal jsem to do jinyho, tak zadnej div ze se nic nemenilo. Děkuju za radu,ale ted resim tohle :

$vstup  = $row["date"];
function cas($vstup)
{
    if (Date("d.m.Y",$vstup)==Date("d.m.Y"))
      $datum = "dnes ". date("H:i", $vstup);
    elseif (mktime(12,0,0,Date("m",$vstup),Date("d",$vstup)+1,Date("Y",$vstup)) == mktime(12,0,0,Date("m"),Date("d"),Date("Y")))
      $datum = "včera " . date("H:i", $vstup);
    elseif (mktime(12,0,0,Date("m",$vstup),Date("d",$vstup)-1,Date("Y",$vstup)) == mktime(12,0,0,Date("m"),Date("d"),Date("Y")))
      $datum = "zítra";
    else
      $datum = date("d.m. H:i", $vstup);
    return $datum;
}
Jen mi to vypisuje nesmyl = 01.01. 01:33
AM_
Profil
a co je v $row['date']? datum bere jako druhý parametr timestamp, takže pokud tam cpeš něco jiného, je to ten problém.
nightrider
Profil
$row["date"] = 2009-01-01 12:00:00
Tim vytahuju datum
AM_
Profil
tak to je špatně, použij tu funkci unix_timestamp při výběru z DB... alternativa je tohle převést na timestamp pomocí phpkového strtotime(), ale čistší je vybrat timestamp rovnou z DB
nightrider
Profil
Děkuju moc za radu. Jsem se na ten obslehnutej kodik vykaslal a dal svoje promeny s podminkama a slape :-) jinak moc dekuju za rady. Vim ze kazdej doporucuje prevod rovnou s dotazu,ale nevedel jsem proc.
AM_
Profil
Vim ze kazdej doporucuje prevod rovnou s dotazu,ale nevedel jsem proc.
jednak proto, že v PHP se nemusíš otravovat s funkcí navíc, jednak bych řekl, že to bude o něco rychlejší - předpokládám, že datetime se interně stejně ukládá jako časové razítko, takže vybírat to jako zformátované datum a čas a pak PHPkem znovu převádět je zbytečné.
nightrider
Profil
To dava sysl,ale kdyz chces s datum dal pracovat, tak je lepsi vytahnout jak je a phpckem ho formulovat,ne? Ja to tak udelal,ale urcite mi napises ze jsem zvolil spatnou formu a na moji obranu jina mne nenapadla :-(
AM_
Profil
tak je lepsi vytahnout jak je
záleží, jak s ním chceš nakládat. Třeba právě v tom kousku kódu, který máš, používáš timestamp, takže by to bylo lepší :) jen mimochodem, čas lze přičítat dost chytře přes strtotime, kde naopak použiješ ten MySQL formát, např:
echo date('d.m.Y', strtotime('2009-06-08 +1 day'))

čímž by sis ten svůj kód s mktime o něco zkrátil, ale to už je na tobě, pokud nemáš server se stovkami návštěv za sekundu a nehraješ na každou instrukci navíc, není v tom podstatný výkonostní rozdíl.

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: