2013-07-16 52 views
0

這個工程工作...用的strtotime和MySQL

mysqli_query 
($con, " 
    INSERT INTO myDB (id, name, mydate) 
    VALUES ('$id', '$name', now()) 
") 

這不工作....

mysqli_query 
($con, " 
    INSERT INTO myDB (id, name, mydate) 
    VALUES ('$id', '$name', date('Y-m-d H:i:s', strtotime('+5 hour'))) 
") 

在MySQL中mydatedatetime格式。

任何想法,爲什麼它不工作?我目前使用now(),但我希望它顯示我的時區中的時間,而不是服務器的時區。

回答

2

我建議儲存日期在可變第一。

$date = date('Y-m-d H:i:s', strtotime('+5 hour')); 

如果您的MySQL和PHP服務器都在同一時區運行,並且它們的時鐘已正確同步,那麼您不會遇到問題。

,然後執行像這樣的查詢:

mysqli_query($con, " 
    INSERT INTO myDB (id, name, mydate) 
    VALUES ('$id', '$name', '$date') 
") 

我希望這有助於!

+1

謝謝。是的,我知道這很簡單,但它讓我發瘋。我做了這樣的嘗試,但它一直在向數據庫寫入'0000-00-00 00:00:00'......事實證明,當我這樣做時我的原始日期格式不正確(我爲我的題)。 – Cully

+0

是的,我非常感謝。它說我必須等4分鐘才能接受。 – Cully

+1

很高興能幫到你! :) –

1

的strtotime()不是MySQL的功能,它的PHP函數,你需要把它寫爲是執行...

"INSERT INTO myDB (id, name, mydate) 
    VALUES ('$id', '$name', '".date('Y-m-d H:i:s', strtotime('+5 hour'))."' 
+0

同意。您可以提前設置變量並使用日期和時間函數,然後將其插入到查詢中。 – CP510

+0

但我該怎麼做?把'$ MyDate = date('Y-m-d H:i:s',strtotime('+ 5 hour'));'在SQL之前,讓它在INSERT中寫入''$ date''? – Cully

+0

是的,就像那樣 – 2013-07-16 22:06:02