Что рекомендуемый путь состоит в том, чтобы сохранить текущее время с помощью PHP и MySQL?

Мой начальный подход был:

$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);

Я столкнулся со следующими подходами:

  1. использовать gmstrftime обработать GMT
  2. использовать INT вместо VARCHAR для столбца
  3. используйте функцию mysql CURTIME или CURDATE
  4. используйте UNIX_TIMESTAMP функция mysql

ни один из которых не использовал DATETIME или TIMESTAMP тип var mysql.

У Вас есть лучший подход для этого?

11
задан Mark Elliot 24 February 2010 в 05:47
поделиться

5 ответов

Рекомендуется использовать тип поля 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
19
ответ дан 3 December 2019 в 04:52
поделиться

Что ж, вы можете превратить поле MySQL TIMESTAMP в значение PHP Time () с помощью strtotime ()

Затем вам просто нужно создать функцию, которая правильно превращает значение PHP Time () в значение MySQL TIMESTAMP.

1
ответ дан 3 December 2019 в 04:52
поделиться

Следуйте формату 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).

0
ответ дан 3 December 2019 в 04:52
поделиться

Хранить его как int более логично. Вы сохранить формат строки даты, используя который позже можно будет извлечь другой формат и другие данные .. Я также сохраняю его как int.

Редактировать: Для приложения (Uni-TimeZone) int - самый быстрый способ, а PHP имеет отличные инструменты для преобразования времени.

0
ответ дан 3 December 2019 в 04:52
поделиться

Я просто использую тип значения TIMESTAMP в MySQL и позволяю MySQL использовать свой собственный CURRENT_TIMESTAMP .

3
ответ дан 3 December 2019 в 04:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: