2013-05-17 25 views
0

當我在我的數據庫中插入時間戳時,該值比我當地時間晚10個小時左右。數據庫託管在Godaddy的服務器上。如何更改我插入到數據庫中的日期的時區?

我已經改變了我php5.ini文件,並添加date.timezone = 'Europe/Istanbul'

(這是美國/鳳凰作爲默認值),當我和phpinfo();

選中,那麼我跑這個代碼:

if (date_default_timezone_get()) { 
    echo 'date_default_timezone: '. date_default_timezone_get() .'<br />'; 
} 

if (ini_get('date.timezone')) { 
    echo 'date.timezone: ' . ini_get('date.timezone'); 
    echo date("d/m/y : H:i:s", time()); 
} 

也沒關係我的當地時間

但是,當我插入數據它得到美國/鳳凰時間戳,這是從我的-10小時當地時間

這裏是我的插入代碼

$insertSQL = sprintf("INSERT INTO cepbank (username, trans_id, bank, tutar, operator) VALUES ('$username', '$trans_id', '$bank', '$tutar', '$operator')"); 

,這裏是我的MySQL表

CREATE TABLE `cepbank` (
    `id` int(11) NOT NULL auto_increment, 
    `username` varchar(11) collate utf8_turkish_ci NOT NULL, 
    `trans_id` int(11) NOT NULL, 
    `bank` varchar(11) collate utf8_turkish_ci NOT NULL, 
    `tutar` decimal(10,2) NOT NULL, 
    `operator` varchar(32) collate utf8_turkish_ci NOT NULL, 
    `tarih` timestamp NOT NULL default CURRENT_TIMESTAMP, 
PRIMARY KEY (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_turkish_ci COMMENT='CepBank Gelen' AUTO_INCREMENT=143 ; 

回答

0

這是因爲你用default CURRENT_TIMESTAMP爲tarih領域。它使用未經調整的服務器日期。獲取調整時間戳在PHP中:

$timestamp = date('Y-m-d H:i:s', time()); 

然後將其添加到查詢:

INSERT INTO cepbank 
    (tarih, username, trans_id, bank, tutar, operator) 
VALUES 
    ('$timestamp','$username', '$trans_id', '$bank', '$tutar', '$operator' 
+0

現在tarih談到0000-00-00 00:00:00任何更多的想法 – PcRestorer

+0

@PcRestorer你能打印$時間戳執行INSERT並退出腳本之前?它有什麼價值? – user4035

+0

1368809605喜歡這個東西 – PcRestorer