Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.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 - Fatal编程技术网

mysql时间和php时间不一样

mysql时间和php时间不一样,php,mysql,datetime,Php,Mysql,Datetime,当我在MySQL中使用current\u timestamp时,我得到了正确的时间,但是当我使用 $mysqldate=date('Y-m-dh:i:s') 我得到的日期有一个小时的延迟(例如,下午4:42是下午5:42)。 我知道这两个函数都使用服务器的本地时间-有人能解释一下区别吗 谢谢。可能您的PHP服务器认为它位于不同的时区,或者它使用不同的区域设置和夏令时规则。有PHP区域设置,它从PHP.ini获取,而不是从系统时间获取。全局系统时间将通过/etc/localtime文件设置,这将是

当我在MySQL中使用
current\u timestamp
时,我得到了正确的时间,但是当我使用

$mysqldate=date('Y-m-dh:i:s')

我得到的日期有一个小时的延迟(例如,下午4:42是下午5:42)。 我知道这两个函数都使用服务器的本地时间-有人能解释一下区别吗


谢谢。

可能您的PHP服务器认为它位于不同的时区,或者它使用不同的区域设置和夏令时规则。

有PHP区域设置,它从PHP.ini获取,而不是从系统时间获取。

全局系统时间将通过/etc/localtime文件设置,这将是大多数系统上/usr/share/zoneinfo/的符号链接或区域文件副本。应用程序将使用此作为默认设置

PHP可以通过两种不同的方式覆盖这一点:

  • 在php.ini中
  • 设置TZ环境变量,例如
    putenv(“TZ=US/Central”)
  • 函数(在PHP>=5.1.0中)
  • MySQL可以通过在连接后立即运行以下查询来覆盖这一点:

    SET time_zone = 'US/Central'
    

    如何让PHP提供服务器计算机上列出的默认服务器时间?PHP的date.timezone没有设置您确定您的MySQL和PHP在同一台服务器上,对吗?有些主机将MySQL放在不同的服务器上。