Soluția cea mai comună este crearea unui câmp TIME. unde timpul va fi stocat în format Unix (numărul de secunde contorizat de la data condițională a nașterii Unix 1970-01-01):
mysql_query ("ALTER TABLE` my_table` ADD` time` TIME NOT NULL ");
Acum, pentru a introduce timpul în celula de timp, puteți utiliza funcția timpului php ():
mysql_query ( "INSERT INTO` my_table` (` pole1`, `pole2`,` pole3`, `time`) VALUES ( 'șir1', 'string2', 'String3', '" timp (). "')" );
Dar dacă ați creat un alt domeniu decât TIME. dar în format TIMESTAMP:
mysql_query ( "ALTER TABLE` my_table` ADD` TIMESTAMP time` NOT NULL DEFAULT CURRENT_TIMESTAMP");
Aceasta și introduceți timpul necesar în formatul TIMESTAMP. Pentru a face acest lucru, utilizați parametrul CURRENT_TIMESTAMP (ora curentă) direct în interogarea INSERT.
mysql_query ( "INSERT INTO` my_table` (` pole1`, `pole2`,` pole3`, `time`) VALUES ( 'șir1', 'string2', 'String3', CURRENT_TIMESTAMP)");
Cu toate acestea, un astfel de format este dificil de calculat în interiorul scriptului php. Cum. de exemplu, pentru a calcula numărul de secunde de la adăugarea ultimului mesaj la baza de date?
Pentru a face acest lucru, trebuie mai întâi să traducem TIMESTAMP în formatul de timp Unix folosind funcția php strtotime ().
Exemplu de interogare și conversie de timp:
/ * obțineți datele din baza de date, și anume timpul mesajului cu ID egal cu 1, în format TIMESTAMP * /
$ sql = mysql_query ("SELECT" TIME FROM `my_table` WHERE` id` = '1' LIMIT 1");
$ array = mysql_fetch_array ($ sql);
$ my_time = $ array ['timp'];
/ * converti timpul într-un format convenabil de timp Unix * /
$ my_time = strtotime ($ my_time);
echo $ my_time ();
$ time_offset = timp () - $ my_time ();
Avem numărul de secunde (1379415600) din trecut din 1970-01-01 și diferența de secunde față de momentul curent.