在MySQL数据库中存储日期和时间以便以后用PHP显示的最佳方法是什么?

时间:2012-08-02 18:33:28

标签: php mysql datetime date time

我想将用户在我的网站上执行操作的日期和时间存储到MySQL数据库中。我希望能够轻松地完成以下任务:

  • 将日期和时间存储为数据库中的一个字段
  • 使用内置的PHP或MySQL函数生成操作的日期时间
  • 根据我服务器的时间存储日期时间,而不用担心用户时区。
  • Order By查询MySQL时的日期时间字段
  • 稍后,使用内置的PHP方法以多种不同的格式显示日期时间

以下是我的问题:

  • 我应该在MySQL中使用哪种数据类型(例如timestampdatetime ...)?
  • 我应该使用什么方法来生成日期时间(例如,MySQL的now(),PHP的date() ...)?
  • 我以后应该用什么PHP方法以各种方式格式化日期时间(例如2012年7月23日星期一下午5点......)?

3 个答案:

答案 0 :(得分:3)

我会将其存储为日期时间,而不是时间戳。

我通常使用PHP日期功能,如果你想存储相对于用户时区的时间,你只需根据用户的设置更改时区。

当你将它拉出数据库时,使用strtotime()进行转换,然后你可以使用所有的date()功能来显示它。例如:

echo date('F j, Y',strtotime($db_datetime)); //Displays as 'March 5, 2012'

答案 1 :(得分:0)

如果将mysql数据类型设置为不可为空的时间戳,然后保存该列的空值,mysql将自动为您更新时间戳。

至于再次阅读它,您可以使用php的strtotime和日期对象将其转换为您需要的格式。

答案 2 :(得分:0)

您应该使用datetime数据类型来满足您的要求。 它将根据您的查询存储输入字段中的日期和时间。

要检索日期时间,您可以使用mysql的date_format()函数或PHP的date()函数。 日期时间将始终根据服务器的时间而不是客户端时间进行存储。