Мой начальный подход был:
$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
обработать GMTINT
вместо VARCHAR
для столбцаCURTIME
или CURDATE
UNIX_TIMESTAMP
функция mysqlни один из которых не использовал DATETIME
или TIMESTAMP
тип var mysql.
У Вас есть лучший подход для этого?
Рекомендуется использовать тип поля mysql timestamp (ГГГГ-ММ-ДД ЧЧ: ММ: СС) для хранения переменных времени и даты в mysql .
$sDate = date("Y-m-d 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
Что ж, вы можете превратить поле MySQL TIMESTAMP в значение PHP Time () с помощью strtotime ()
Затем вам просто нужно создать функцию, которая правильно превращает значение PHP Time () в значение MySQL TIMESTAMP.
Следуйте формату a.b.c.d
, a
, b
Minor, c
Build и d
Revision (даже если MS поменяет местами последние два).
Мажор и Минор должны быть набором самостоятельно. Для обратной связи с набором изменений/версией в системе управления версиями используйте команду Сборка и версия или просто версия.
Причина использования комбинации Build и Revision заключается в том, что вы можете столкнуться с проблемами, когда редакция слишком велика для использования на определенных платформах (имея в виду AssemblyVersion в .NET здесь, 4 Int16
части). Таким образом, можно использовать div 1000 версии SCS для c
и mod 1000 версии SCS для d
.
Таким образом, из любого номера версии (действительно только из частей Build и Revision) вы всегда сможете получить уникальное состояние исходного кода.
-121--4903703-Я всегда был поклонником пути людей Apache обрабатывать управление версиями . Люди Subversion также приняли его разновидность (не могут найти ссылку, так как они перенесли веб- территорию), что делает последовательную, легкую для понимания методологию.
-121--4903701-Формат, используемый MySQL, не должен соответствовать формату, используемому PHP. Выберите лучшее с любой стороны. Базы данных имеют типы данных даты по причине; в MySQL вы можете выбрать из следующих:
http://dev.mysql.com/doc/refman/5.1/en/date-and-time-types.html
В PHP у вас в основном есть три варианта:
Старые старые метки времени просты в обращении и вы можете использовать их в своих запросах MySQL - см. FROM _ UNIXTIME () и UNIX _ TIMESTAMP () - но у них есть
Объекты DateTime являются мощными и строящимися, не имеют проблем с диапазонами и поддерживают часовые пояса. Однако иногда их не очень удобно использовать, поскольку им, похоже, не хватает некоторых важных методов.
Можно использовать пользовательский объект даты (сторонний или собственный объект DateTime).
Хранить его как int более логично. Вы сохранить формат строки даты, используя который позже можно будет извлечь другой формат и другие данные .. Я также сохраняю его как int.
Редактировать: Для приложения (Uni-TimeZone) int - самый быстрый способ, а PHP имеет отличные инструменты для преобразования времени.
Я просто использую тип значения TIMESTAMP
в MySQL и позволяю MySQL использовать свой собственный CURRENT_TIMESTAMP
.