Autor Zpráva
Lukas-v
Profil *
Ahoj mam takový problém, ukládam datum vytvoření záznamu do databáze.

$page_publish_year = date("Y");
  $page_publish_month = date("m");
  $page_publish_day = date("d");
  $page_publish_hour = date("H");
  $page_publish_minute = date("i");
  $page_publish_second = date("s");
  $page_publish_1970 = date("U");


ale usekne mi to nuly před cislem, nejdriv sem myslel ze je to tim ze to ukladam do mysql databaze jako int ale pak jsem dal

page_publish_year varchar(4), 
page_publish_month varchar(2), 
page_publish_day varchar(2), 
page_publish_hour varchar(2),
page_publish_minute varchar(2), 
page_publish_second varchar(2), 
page_publish_1970 int, 


a dela to porad to same poradte cim to muze byt chci mit ty nuly pred cisle aby to tisklo cas 09:42:00 a ne 9:42:0 jako mi to dela ted
ninja
Profil
Lukas-v: pokud chces ulozit i s nulou na zacatku (napr. '007'), je od toho v MySQl priznak zerofill.


Proc proboha ale ukladas datum do samostatnych sloupcu a ne do jednoho DATETIME?!
Lukas-v
Profil *
Proc proboha ale ukladas datum do samostatnych sloupcu a ne do jednoho DATETIME?!

Mno o tom sem se chtel taky poradit.
Delam si svuj vlastni redakcni system a ted si zacinam delat generator RSS a Atom, mno a pro datum ve formatu pro RSS je primo funkce date("r"); mno ale Atom ma zase datum ve formatu podle W3C a kdyz chci tisknout datum na strance s novinkami tak mi staci vytisknout den mesic rok hodina minuta sekunda, jde o to ze vsechny 3 formaty pro tisk toho data jsou v jinem formatu a tak nevim co vsechno mam ukladat do databaze. Tak za radu budu vdecny
ninja
Profil
Z MySQL DATETIME ziskas unix timestamp jednoduse: UNIX_TIMESTAMP(sloupec). Pak si s tim v PHP udelas co chces.

BTW: Jestli naznas takto zakladi veci, do RS bych se zatim nepoustel. Jakmile jej dopises a neco se naucis, radeji ho smazes :). Zkus pro zacatek neco mensiho.
Lukas-v
Profil *
Z MySQL DATETIME ziskas unix timestamp jednoduse: UNIX_TIMESTAMP(sloupec). Pak si s tim v PHP udelas co chces.

BTW: Jestli naznas takto zakladi veci, do RS bych se zatim nepoustel. Jakmile jej dopises a neco se naucis, radeji ho smazes :). Zkus pro zacatek neco mensiho.



TIMESTAMP v MySQL databazi nechci pouzivat protoze mam kolokny datum vytvoreni a datum editace, a datum editace sem tam da az se to poprve edituje a to by v MySQL udelat neslo to snad chapes.

Mno ale tak pokud bych to chtel udelat poctem sekund od roku 1970 tak ktere funkce bys pak nejlepe pouzil na rozkodovani, a stejne si musim ulozit i to casove pasmo, protoze to v tom poctu sekund vlastne neni.
ninja
Profil
Lukas-v: prosim bud pozornejsi. Pisu ze unix timestamp udelas z MySQL DATETIME, nikoliv ze to budes mit ulozeny jako timestamp. Koukal jsi se alepson do dokumentace jak vypada DATETIME?!
Lukas-v
Profil *
Dobre pouziji funkci

date ("U");


ta mi vypise pocet sekund od roku 1970 v casovem pasmu GMT. Tuto hodnout ulozim do mysql databaze.

Pote z ni tuto hodnout vyberu a potrebuji z ni dostat ruzne formaty data,
1.) Pro RSS generator (formát rfc822) napr.: Mon, 11 Feb 2008 11:20:31 +0100
2.) Pro Atom generator (w3c format data a casu) napr.: 2006-04-06T20:30:34+01:00
3.) A pote muj format ktery bude zobrazen u novinek v nahledu administracniho rozhrani, cili na webu se nastavi defaultni casove pasmo treba treba GMT +1.

Takze ktere funkce pouzit pro rozkodovani toho poctu sekund od roku 1970 abych dostal vsechny hodnoty co potrebuji. Tim ukladanim do databaze se uz tedy nezabyvejme.
ninja
Profil
Ne ne a ne. Ctes co pisu?

Vse co potrebujes je sloupec v MySQL typu DATETIME, MySQL funkce UNIX_TIMESTAMP() a FROM_UNIXTIME() a PHP funkci date().

Najdi si v dokumentaci MySQL a PHP dane veci a urcite budes vedet, jak to udelat.
nightfish
Profil
také doporučuji vaší pozornosti mysql funkci DATE_FORMAT
http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#fu nction_date-format
Lukas-v
Profil *
Byl jsem na obede ale uz jsem na to prisel a vse mi funguje, dik moc ;)

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