【问题标题】:Storing timestamp in MySQL在 MySQL 中存储时间戳
【发布时间】:2014-12-27 23:16:11
【问题描述】:

我正在从一个网页中获取数据,该网页返回以下形式的时间戳(这是一个字符串):

2013-11-09T15:14:48.957604

我如何在 PHP 中解释它,将它存储在 MySQL 数据库中的最佳方式是什么?

【问题讨论】:

  • 今天的阶段是ISO-8601,如果 mysql 有任何好处,它将理解该字符串未更改。 (使用时间戳列)
  • 嗯,您可以将其转换为 unix 时间戳,如 strtotime('2013-11-09T15:14:48.957604') 并将其保存为 integer(11) 值 :-) 这样您就可以将其读取为时间戳并转换为任何时间和日期格式。
  • 在php中$d1=new DateTime("2013-11-09T15:14:48.957604");

标签: php mysql timestamp


【解决方案1】:

存储它的最佳方式是使用 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

【讨论】:

    【解决方案2】:

    我只是想扩展这里提供的信息。

    这会将字符串转换为 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同样的方式输出。

    【讨论】:

      猜你喜欢
      • 2011-09-25
      • 1970-01-01
      • 1970-01-01
      • 2016-01-07
      • 2010-12-06
      • 1970-01-01
      • 1970-01-01
      • 2016-04-22
      • 1970-01-01
      相关资源
      最近更新 更多