2012-03-27 62 views
1

我有一個快速的問題......我有一個表時間戳列...我通過查詢此行時間戳列不存儲爲什麼時區我期望

SET TIME_ZONE設置MySQL的時區爲UTC = '+00:00'

但時間戳列仍然存儲在我的機器的當前時區...這是一個錯誤或什麼?即時使用Yii PHP框架用於數據的存儲和PHPMYADMIN看到的數據

這是完整的場景

1)我有有6列的表(ID,post_hash,USER_ID,post_msg,post_time,UPDATE_TIME )

2)post_time和UPDATE_TIME既是時間戳...

3),但UPDATE_TIME有一個屬性,其中在它要去當行了修改更新自己。 post_time只是一個簡單的時間戳列

4)當我插入數據時的問題... post_time和update_time跟在我的計算機的當前時區,但我已經將我的mysql和php的時區設置爲UTC之前執行SQL。

這是我的Yii代碼

$conn = Yii::app()->db; 
    //Store the message to database 
    $sql = "INSERT INTO posts(post_hash,user_id,post_msg,post_time) 
      VALUES(:post_hash,:user_id,:post_msg,:post_time)"; 

    $dbcmd = $conn->createCommand($sql); 
    $user_id = Yii::app()->user->user_id; 
    date_default_timezone_set('UTC'); 
    $post_date = date("Y-m-d H:i:s",time()); 
    $post_hash = "p-".Ynet_Crypt::encryptString(time().Yii::app()->user->username,"sha256"); 
    $dbcmd->bindParam(":post_hash",$post_hash); 
    $dbcmd->bindParam(":user_id",$user_id); 
    $dbcmd->bindParam(":post_msg",$msg); 
    $dbcmd->bindParam(":post_time",$post_date); 
    $dbcmd->execute(); 

,這是我的警予的配置,設置我的連接mysql是UTC時區

 'charset' => 'utf8', 
     'initSQLs'=>array("SET time_zone = '+00:00'"), 
    ), 

所有我想要的是我保存會UTC日期時間

+1

您是如何確定色譜柱的儲存格式? – 2012-03-27 08:50:48

+0

@DavidSchwartz我不太明白你的問題。請進一步解釋謝謝 – 2012-03-27 08:52:44

+0

您確定在查詢中插入或更新的時間沒有被時區偏移嗎? – 2012-03-27 08:52:45

回答

1

要同時將PHP和mySQL時區同步,您可以將這些代碼添加到您的config/main.php文件中#

'timeZone' => 'UTC'//This is for PHP 
'db'=>array(
'charset' => 'utf8', 
'initSQLs'=>array("SET time_zone = '+00:00'"), 
), 

`

,現在你也可以使用CDbExpression ('NOW()')獲得來自系統的當前日期時間在您需要的時區。

相關問題