Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么';在MySQL数据库中存储日期和时间以便以后使用PHP显示的最佳方法是什么?_Php_Mysql_Datetime_Date_Time - Fatal编程技术网

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

什么';在MySQL数据库中存储日期和时间以便以后使用PHP显示的最佳方法是什么?,php,mysql,datetime,date,time,Php,Mysql,Datetime,Date,Time,我想将用户在我的网站上执行操作的日期和时间存储到MySQL数据库中。我希望能够轻松地做到以下几点: 将日期和时间作为一个字段存储在数据库中 使用内置的PHP或MySQL函数生成操作的日期和时间 根据我的服务器的时间存储日期时间,不必担心用户时区 orderby查询MySQL时的日期时间字段 稍后,使用内置的PHP方法以多种不同的格式显示日期和时间 以下是我的问题: 我应该在MySQL中使用什么数据类型(例如,timestamp,datetime…) 我应该使用什么方法来生成日期时间(例如M

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

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

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

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

      我通常使用PHP date函数,如果您想要存储相对于用户时区的时间,您可以根据用户的设置简单地更改时区

      当您将其从数据库中取出时,请使用strotime()对其进行转换,然后您可以使用所有date()功能以任意方式显示它。例如:

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

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


      至于重新读取,您可以使用php的strotime和date对象将其转换为所需的格式。

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

      要检索日期时间,可以使用mysql函数或PHP函数。 datetime将始终根据服务器的时间而不是客户机的时间存储。