Autor Zpráva
peta
Profil *
Nekdo mi poradil, ze se dobre pracuje s timestamp. Potreboval bych vedet ale jak.

Mam toto v SQL:
game_start timestamp NOT NULL default '0',

Potrebuji to
- vytahnout do PHP
- vytahnout z toho v PHP rok, den, mesic, hodinu, minutu
- ulozit aktualni cas

Nepotrebuji prikaz sql, jenom php kody pro ovladani udaje v timestampu
peta
Profil *
Uz nic, asi jsem to nasel:
aktualni: $razitko = time()
prevod: $cas = date('d/m/Y',$razitko)

ddoufam, ze je to ono
kaifman
Profil
tak to ti ten nekdo poradil spatne :-)
peta
Profil *
kaifman
Myslis? :)
Podle mne se s tim docela dobre pracuje.
Nicmene nemuzu ho ted prinutit, aby mi ulozil razitko.

$datum=time();
echo $datum."<br />"; ... 11321365142005
echo date('d/m/Y',$datum); ... 16/11/2005
a legrace nejvetsi :)

user_regdate timestamp NOT NULL default '0',
$dotaz = "INSERT INTO $tabulka VALUES ('$id','$login','$psw','$ip','$info','$datum','$datum','0')";

v DB nic :)))))
polozka id, login, psw,ip,info OKI, ale jak je razitko, tak ne a ne ulozit
http://mracek.xhosting.cz/gc/gc-users.php
Hugo
Profil
Chyba je samozřejmě v tom, že do sloupce, který má typ timestamp ukládáš datum ve formátu Unix-Timestamp.

http://dev.mysql.com/doc/refman/5.0/en/timestamp-4-1.html
peta
Profil *
Hugo
Aha, ja myslel, ze je to totez. Vim, ze normalne jsou v tom odlisnosti, ale sem to nepouzival...
Takze, jak to prevest?

//cz2.php.net/time
time -- Return current Unix timestamp
Cili rika, ze time vraci unixovy format

Dale jsem nase prevod pomoci DB, ale to men vicemene nezajima...
$result=mysql_query ("SELECT UNIX_TIMESTAMP(timestamp_column) as epoch_time FROM table");

Cili s jakym datumem tedy pracovat, abych si jej mohl ulozit v poho do DB?

(Napada mne finta, ze do tam zkratka ulozim jako 14-znakovy retezec a vykaslu se na nejake typy Timestamp.)
Hugo
Profil
A proc nepouzijes typ datetime? Aktualni datum potom muzes vkladat pomoci funkce now().
peta
Profil *
Tam nepotrebuji zadne slozitosti, jen
datum registrace,
zalozeni hry,
aktualni cas (abych mohl sledovat dobu hry, cas online)
printf_jinde
Profil *
Výhoda typu DATETIME je, že je dobře čitelný a snadno se převádí do téměř libovolného formátu.
peta
Profil *
Hugo
Ok, a jak se s tim pracuje, kdyz chci odcitat 2 casy a pak z toho zjistit minuty a hodiny?
peta
Profil *
Hugo Docela by mi vadilo, kdybych si ulozit DATETIME a pak, kdyz chci zjistit rozdil mezi A a B udaji, abych A i B musel na neco prevest. To mi prijde jako zbytecne komplikovane. Proto bych radeji neco jako "timestamp" , kde si to prevadim az pro zobrazeni.
hugo_jinde
Profil *
Podívej se sem
http://dev.mysql.com/doc/refman/4.1/en/date-and-time-functions.html
printf_jinde
Profil *
v njehorším si ulož ty unixové vteřiny nebo co to je jako nějakej delší int
peta
Profil *
hugo_jinde
Pocky, a pole typu unixtime tam nemuzu zapsat? Musi se to konvertovat, ju?
Zbytecne konverze nesnasim :)
Hugo
Profil
peta

Muzes, ale musis pouzit datovy typ unix-timestamp.
peta
Profil *
Nebo takhle:
- pouziji-li UNIX-TIMESTAMP, PHP je oki, ale pro SQL musim pouzit konverzi
- pouziji-li TIMESTAMP, v PHP nevim, jak se s tim pracuje, kdyz chci A-B (casy), asi konverze a SQL v poho
- pouziji-li DATETIME, pak v PHP musim pro A-B provest konvezi, kdyz to chci ulozit do SQL, tak mam pocit, ze taky musim pouzit konverzi
- a treti zlata cesta s necim univerzalnim neni?

Ta stranka je dost silena, co tak lemo obhledam. Silene moc informaci, ktere mne nezajimaji...
peta
Profil *
Hugo super, sem chtel vedet, jestli to existuje :)
peta
Profil *
Hugo Jeste by mne zajimalo, pro ktere PHP to existuje?
Hugo
Profil
peta

Tohle se php netýká. MySQL to podporuje snad odjakživa.
peta
Profil *
Aha, a mozna hloupy dotaz, proc vetsina lidi pouziva DATETIME?
Hugo
Profil
peta

Já ho mám radši. Dá se to jednoduše transformovat na cokoliv a např. v phpmyadmin vidíš krásně čas.
peta
Profil *
Hm, tak to jeste zvazim. Je fakt, ze bych raci uvital autokonverzi v myadminu, ale ta tam neni...
peta
Profil *
Ok, pouziji teda DATETIME a udelam si prevodni funkce:
user_regdate datetime NOT NULL default '0000-00-00 00:00:00',

$formatdata="Y-m-d H:i:s"
function datumToDate($a) {return date($formatdata,$a);}
function datumToStamp($a) {return strtotime($formatdata,$a);}

$nacteno=(2005-11-9 33:22:44);
$a=time();
$b=datumToStamp($nacteno);
$a=$a-$b;
$a=datumToDate($a);

Rad bych vedel, jak to napsat do toho strtotime(), aby mi to fungovalo? Nebo jak teda odcitat 2 datumy ve formatu datetime?
peta
Profil *
Nic, dobre, uz to mam. Trapny :)

$dformat="Y-m-d H:i:s";

$a=date($dformat);
$b=strtotime($a);
$c=time();

echo "<pre>";
echo $a."\n";
echo $b."\n";
echo $c."\n";
echo "</pre>";
kaifman
Profil
dva datumy muzes odecist napriklad tak ze je prevedes na dny

to_days(jedenDatum)-to_days(druhejDatum)

a nebo pokud chces mesice tak period_diff()

podivej se do manualu na funkce pro praci s datumama a nejakej timestamp posles do kopru :-)
Toto téma je uzamčeno. Odpověď nelze zaslat.

0