Время, как хранить его
Хорошо, я немного запутался. Я работаю над проектом, который должен хранить некоторые time()
в базе данных. Мне кажется, что для большей гибкости я должен хранить это как метку времени, чтобы я мог выполнять операции между 2 раза и другими классными вещами. Но я видел (здесь больше, чем везде), что многие люди хранят время в базах данных в формате даты, задаваясь такими общими вопросами, как: как я могу конвертировать формат даты в метку времени? или как я могу вычесть дату к другой, которые имеют другой формат даты? и т.п.
Я ошибаюсь, используя временные метки и конвертирую их позже (чтобы их показывали пользователю) в формат времени? База данных Mysql.
3 ответа
Я обычно храню метки времени в формате int(10), поскольку метка времени UNIX всегда будет иметь длину 10 символов. Рекомендуется использовать int вместо varchar или char, так как при использовании синтаксиса ORDER в SQL порядок не будет неправильным.
Скажем, вы хотите преобразовать дату в метку времени, вы можете использовать strtotime или mktime, в зависимости от того, что вы делаете.
Чтобы определить разницу между двумя временными метками, просто вычтите их друг из друга.
Для выпуска часовых поясов вы можете установить это для страны пользователя, используя date_default_timezone_set. Это будет учитываться при использовании таких функций, как дата
MySql поддерживает столбцы DateTime, Date и Timestamp и предлагает ряд удобных функций для работы с ними через SQL. Я предлагаю прочитать связанную справочную страницу, чтобы выбрать правильный для ваших нужд.
На всякий случай, если вы не знали, MySQL поддерживает несколько функций даты, DATESUB, DATEADD и т. Д.