2012-02-26 90 views
0

我試圖在MySQL數據庫「CURRENT_TIMESTAMP」類型的「timestamp」類型的字段中插入,其2012年2月26日上午10時04分34秒在我的本地和它的時間在我的電腦上 但事情是,我發現它2012-02-26 2時04分34秒在我的數據庫 每次我插入我從我的本地時間 找到不同的價值觀和ASLO如果我做PHP&MySQL日期

echo strtotime('now'); 

它打印相同的值「2012-02-26 02:04:34」

我該如何解決,因爲我知道我正在按計劃工作需要在特定時間執行操作

+1

你的服務器是在另一個時區運行。在http://www.php.net/date_default_timezone_set中將它設置爲php到您的時區,並使用php所花費的時間。對於MySQL,請閱讀http://dev.mysql.com/doc/refman/5.1/en/time-zone-support.html – Cheery 2012-02-26 08:14:18

+0

您正在使用什麼查詢來輸入數據? – Starx 2012-02-26 08:16:17

回答

0

這看起來像時區問題。檢查他們在php.ini。或作爲建議我爽快的註釋,使用[docs here]

<?php 
date_default_timezone_set('America/Los_Angeles'); 
?> 

然而,你應該確保你使用正確的方法輸入到數據庫的日期和時間。有兩種方法可以做到這一點。

  1. MYSQL:使用NOW()功能

    INSERT INTO table VALUES(data = '$data', date = now()); 
    
  2. PHP:使用time()功能

    $query = "INSERT INTO table VALUES(data = '$data', date = '".time()."');" 
    
+0

非常感謝,我使用date_default_timezone_set('Europe/Minsk'); 因爲我是格林威治標準時間+2及其10:27 回聲日期(「Y-m-d G:i:s」); //打印11:27對我來說這是一個錯誤的時區? – 2012-02-26 08:28:51

+0

在這種情況下,功勞歸於@Cheery。我很高興,它幫助你。 – Starx 2012-02-26 08:29:56

-2

您需要在SQL查詢中使用MySQL的NOW()函數來獲取執行查詢時的當前時間。

+0

請嘗試正確回答。 'thingie'是什麼意思? – Starx 2012-02-26 08:24:58

0

您可以使用此sql來設置您當前的時區。

set time_zone = <your timezone>; 

例如,

set time_zone = 'Asia/Calcutta'