0

我面临一个关于 PHP 和 MySQL 返回的日期时间的问题。我检查了 PHP 日期,使用

echo date("Y-m-d h:m:s"); 

它回来了

2013-07-31 01:07:37 

然后我在 mysql 控制台(phpmyadmin/sqlyog)中使用查询执行了一个查询

SELECT NOW() as date_time 

结果

2013-07-31 15:40:36 

首先,我希望两者都应该导致日期时间,其次我如何设置其中任何一个以匹配另一个。

注意:我在本地和实时服务器上都检查过

4

2 回答 2

6

除了格式代码中的拼写错误外,似乎 MySQL 和 PHP 没有配置为使用相同的时区。如何发现?

在 MySQL 中

mysql> SELECT @@session.time_zone;
+---------------------+
| @@session.time_zone |
+---------------------+
| SYSTEM              |
+---------------------+
1 row in set (0.00 sec)

(在此示例中,SYSTEM表示“主机的时区”。)

在 PHP 中

<?php
echo date_default_timezone_get();
// Europe/Madrid
于 2013-07-31T11:43:36.843 回答
2

您的date格式字符串错误。它应该读

date ("Y-m-d H:i:s");

文档中,它说h是 12 小时格式的小时,m是月,而不是分钟。两个小时的差异可以通过时区(和/或 DST)来解释。

于 2013-07-31T11:18:35.900 回答