Найпоширеніше рішення - створити поле TIME. де час буде зберігається в Unix форматі (число секунд, відраховані від умовної дати дня народження Unix 1970-01-01):
mysql_query ( "ALTER TABLE` my_table` ADD `time` TIME NOT NULL");
Тепер щоб вставити в осередок time час можна використовувати функцію php time ():
mysql_query ( "INSERT INTO` my_table` ( `pole1`,` pole2`, `pole3`,` time`) VALUES ( 'string1', 'string2', 'string3', ' ". time ()."') " );
Але якщо Ви створили поле не в форматі TIME. а в форматі TIMESTAMP:
mysql_query ( "ALTER TABLE` my_table` ADD `time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP");
Раз у вставляти час потрібно в форматі TIMESTAMP. Для цього використовується параметр CURRENT_TIMESTAMP (поточний час) прямо в запиті INSERT.
mysql_query ( "INSERT INTO` my_table` ( `pole1`,` pole2`, `pole3`,` time`) VALUES ( 'string1', 'string2', 'string3', CURRENT_TIMESTAMP) ");
Однак такий формат важко обчислювати всередині php скрипта. Як. наприклад, обчислити число секунд, що минули з часу додавання останнього повідомлення в базу?
Для цього нам спочатку знадобиться перевести TIMESTAMP в формат Unix-часу за допомогою функції php strtotime ().
Приклад запиту і перетворення часу:
/ * Отримуємо дані з БД, а саме - час повідомлення з ID рівним 1, в форматі TIMESTAMP * /
$ Sql = mysql_query ( "SELECT` time` FROM `my_table` WHERE` id` = '1' LIMIT 1 ");
$ Array = mysql_fetch_array ($ sql);
$ My_time = $ array [ 'time'];
/ * Перетворимо час в зручний формат Unix time * /
$ My_time = strtotime ($ my_time);
echo $ my_time ();
$ Time_offset = time () - $ my_time ();
Отримуємо число секунд (1379415600) пройшли з 1970-01-01 й різницю в секундах щодо поточного моменту.