2014-12-27 3 views
0

Я захватывая данные с веб-страницы, которая возвращает метку времени в следующем виде (который является строкой):Сохранение метки времени в MySQL

2013-11-09T15:14:48.957604

Как я могу интерпретировать это в PHP, и что такое лучший способ сохранить это в базе данных MySQL?

+0

фаза на сегодняшний день - 'ISO-8601', если mysql - это хорошо, он поймет, что строка неизменна. (используйте столбец временной отметки) – Jasen

+0

Хм, вы можете преобразовать его в timestamp unix, например 'strtotime ('2013-11-09T15: 14: 48.957604')' и сохранить его как целое (11) значение :-), чтобы вы могли читать это как временная метка и конвертировать в любой формат времени и даты. – Eugen

+1

в php '$ d1 = new DateTime (" 2013-11-09T15: 14: 48.957604 ");' – Jasen

ответ

0

Лучший способ сохранить его - использовать тип данных MySQL DATETIME. Он специально предназначен для обработки значений даты и времени, и он работает за пределами 2037 года, который является приблизительным пределом с использованием временных меток unix. MySQL и PHP с легкостью справляются с этими значениями с помощью встроенных функций/библиотек (для PHP см. Класс DateTime, как упоминается другим комментатором).

http://dev.mysql.com/doc/refman/5.5/en/datetime.html

http://php.net/manual/en/class.datetime.php

0

Я просто хочу, чтобы расширить на приведенной здесь информации.

Это преобразует строку в объект DateTime.

$dtObject = new DateTime("2013-11-09T15:14:48.957604"); 

Но для хранения метки времени в базе данных существует несколько требований.

  • Нужно быть в формате Y-m-d H: i: s.
  • Тип столбца MYSQL должен быть datetime/timestamp
  • Нужно быть строкой.

Теперь, чтобы получить эту метку времени в формате MYSQL, нам необходимо использовать функцию format.

$timestamp = $dtObject->format('Y-m-d H:i:s'); 

Теперь вы можете INSERT это в базе данных. Вы также можете выводить то же самое, что и после этого date formats.

Смежные вопросы