PHP / MySQL - 关于存储时间戳的困惑

时间:2011-09-18 18:50:35

标签: php mysql

我需要以PHP / MySQL形式存储表单提交的时间戳。我希望能够以最灵活的方式查询此字段,以便在PHP中显示数据。什么MySQL数据类型是最佳实践,我应该使用哪个PHP函数来存储/检索数据?

3 个答案:

答案 0 :(得分:2)

我会将此数据存储为MySQL提供的TIMESTAMP数据类型。与其他存储选项相比,这有很多优势,例如下面列出的DATETIMEINT

  • 特别意味着存储特定的时刻。无论您的服务器位于哪个时区,以及您的mysql客户端所在的时区,存储在CURRENT_TIMESTAMP字段中的常量TIMESTAMP的值始终指向绝对时间线中的同一时刻
  • 在内部,它使用4个字节的空间进行存储,与INT数据类型的空间相同
  • 它会在常规查询中为您提供漂亮,人性化的可理解值。
  • 此外,这些漂亮的值将转换为连接到它的客户端的时区。这可能对你有好处或坏处。如果填充了mysql时区表或类似于set timezone='timezone',则可以使用SET time_zone='+5:30'将其更改为所需的值,包括UTC。只有在所需时区内没有夏令时调整时,后者才有效。
  • 您的查询可以利用MySQL了解此字段代表日期的事实。因此,您可以运行以下查询:获取最近3年5月份发生的所有注册。
  • 使用内置函数更改显示格式以显示unix时间戳或任何其他有效表单。

答案 1 :(得分:0)

在数据库中使用DATETIME或DATE:http://dev.mysql.com/doc/refman/5.6/en/datetime.html

  

什么MySQL数据类型是最佳实践,我应该使用哪个PHP函数来存储/检索数据?

http://ch2.php.net/mysqli

答案 2 :(得分:0)

不知道你在说什么时间戳,但是对于unix时间戳你需要INT类型字段。