Autor | Zpráva | ||
---|---|---|---|
nightrider Profil |
#1 · Zasláno: 7. 6. 2009, 22:14:28
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 |
#2 · Zasláno: 7. 6. 2009, 22:22:01
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 |
#3 · Zasláno: 7. 6. 2009, 22:26:57
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; } |
||
AM_ Profil |
#4 · Zasláno: 7. 6. 2009, 22:40:28
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 |
#5 · Zasláno: 7. 6. 2009, 22:43:13
$row["date"] = 2009-01-01 12:00:00
Tim vytahuju datum |
||
AM_ Profil |
#6 · Zasláno: 7. 6. 2009, 23:17:48
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 |
#7 · Zasláno: 7. 6. 2009, 23:34:29
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 |
#8 · Zasláno: 7. 6. 2009, 23:39:56
„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 |
#9 · Zasláno: 7. 6. 2009, 23:42:09
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 |
#10 · Zasláno: 8. 6. 2009, 00:19:02
„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. |
||
Časová prodleva: 15 let
|
0