Мой первоначальный подход:
$current = time(); // save this to column CURRENT_TIME with column type VARCHAR //retrieve it like this $retrieved = mysql_query(....) //assume query for getting the stored time value $time = strtotime($retrieved);
Я столкнулся с следующими подходами:
gmstrftime
для обработки gmt INT
вместо VARCHAR
для столбца CURTIME
или CURDATE
UNIX_TIMESTAMP
mysql UNIX_TIMESTAMP
ни один из которых не использовал тип DATETIME
или TIMESTAMP
mysql var.
У вас есть лучший подход для этого?
Рекомендуется использовать тип поля timestamp mysql (YYYY-MM-DD HH: MM: SS) для хранения переменных времени и даты в mysql .
$sDate = date("Ymd H:i:s"); // 2015-04-07 07:12:51 mysql_query("insert into `table_name` set `created_on` = '$sDate'");
Это дает вам возможность использовать функции mysql для сравнения дат, расчета разницы во времени и т. Д. Непосредственно в вашем запросе mysql.
Также вы всегда можете получить временную метку с помощью функции strtotime () .
$result = mysql_query("select `created_on` from `table_name`"); $row = mysql_fetch_row($result); $iTimestamp = strtotime($row[0]); // 1428390771
Я просто использую тип значения TIMESTAMP
в MySQL и позволяю MySQL использовать собственный CURRENT_TIMESTAMP
.
Ну, вы можете превратить поле MySQL TIMESTAMP в значение PHP Time (), используя strtotime()
Затем вам просто нужно сделать функцию, которая корректно превращает значение PHP Time () в значение MySQL TIMESTAMP.
Формат, используемый MySQL, не обязательно должен соответствовать формату, используемому PHP. Выберите лучшее с обеих сторон. Базы данных имеют данные о дате данных по какой-либо причине; в MySQL вы можете выбрать из них:
http://dev.mysql.com/doc/refman/5.1/en/date-and-time-types.html
В PHP у вас есть три варианта:
Хорошие старые временные метки просты в обращении, и вы можете использовать их в своих MySQL-запросах – см. FROM_UNIXTIME () и UNIX_TIMESTAMP () – но они имеют серьезные проблемы с диапазоном (вы не можете полагаться на них для дат до 1970 года, поэтому они непригодны для дней рождения).
Объекты DateTime являются мощными и встроенными, не имеют проблем с диапазоном и поддерживают часовые пояса. Тем не менее, они иногда не очень удобны в использовании, поскольку у них, похоже, не хватает важных методов.
Вы можете использовать пользовательский объект даты (сторонний или собственный DateTime).
Хранение его как int более логично. Вы сохраняете формат строки даты, с помощью которого вы можете впоследствии извлечь другой формат и больше данных. Я также сохраняю его как int.
Изменить: для (Uni-TimeZone) приложение int является самым быстрым способом, а PHP имеет отличные инструменты для преобразования времени.