2013-07-31 26 views
0

我面臨一個關於日期時間由PHP和MySQL返回的問題。 我查了一下PHP日期,使用不同的PHP和MySQL的日期時間

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 

我希望這兩個都應該導致夫人約會時間, 其次我怎麼能設置他們中的任何一個匹配另一個。

注:我檢查了本地和活的服務器上都

+0

谷歌的*同步PHP的MySQL日期時間* –

+0

「我想要這兩個都應該導致女士約會時間」是什麼意思?您是否檢查過DATE_FORMAT(日期,格式)? – dendini

+0

OP希望PHP服務器日期時間和MySQL日期時間同步的人! –

回答

2

date格式字符串是錯誤的。它應該閱讀

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

documentation它說h是12小時制和m是一個月時間,而不是幾分鐘。兩小時內的差異可以用時區(和/或DST)來解釋。

+0

那麼?這個錯字是否改變了這種情況? –

+0

那麼它會阻止你使用月份號碼作爲分鐘。它不能解釋可能由於不匹配的時區導致的小時差異 – Anigel

+0

@juergend Yup。檢查這個文件:http://php.net/manual/en/function.date.php – Thew

5

除格式代碼中的拼寫錯誤外,似乎MySQL和PHP未配置爲使用相同的時區。如何找出答案?

In MySQL

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

(在這個例子中,SYSTEM的意思是 「主機的時區」。)

In PHP

<?php 
echo date_default_timezone_get(); 
// Europe/Madrid 
+0

其中最佳答案。謝謝:) –

+1

@IrfanYounus:我可以在你的配置文件中看到你現在沒有在Stack Overflow上使用一個很好的功能。您可以將每個問題的答案標爲解決方案或最好,方法是單擊答案分數下的複選標記。也許你還想重溫一下你以前的問題。而且,每個接受都會得到2個代表點。 –