2013-09-26 53 views
2

我有一個MySQL查詢保存在數據庫中的註釋,也節省了我要救時間戳另一個時區設置,我可以做到這一點,通過下面的查詢時間戳:我可以在特定時區獲得時間戳嗎?

INSERT INTO tahminler 
(comment, comment_text, match_id, user_id, timestamp) 
VALUES ('$comment','$comment_text', $id, $user_id, now()) 
+0

MySQL時間戳和日期時間列沒有時區的概念。你必須添加一個額外的列來自己存儲時區數據。 – GordonM

回答

0

是。你可以在PHP上使用date_default_timezone_set()

<?php 
echo date('Y-m-d H:i:s');// Your local server time 
date_default_timezone_set('America/Los_Angeles'); 
echo "<br>"; 
echo date('Y-m-d H:i:s');// Los Angeles time 

所以你now()date('Y-m-d H:i:s');更換設置您所選擇的時區後。

+0

這隻適用於以下情況:a)使用系統的每個人都在同一個時區或b)每個用戶都有一些時區記錄。 – GordonM

+0

完全正確。對於選項b),如果已經有記錄,OP可以從此提供的http://www.php.net/manual/en/datetime.configuration.php#ini.date.timezone運行switch語句。 –

0

你可以用這一個

//default timezone 
$date = new DateTime(null); 
echo 'Default timezone: '.$date->getTimestamp().'<br />'."\r\n"; 

//America/New_York 
$date = new DateTime(null, new DateTimeZone('America/New_York')); 
echo 'America/New_York: '.$date->getTimestamp().'<br />'."\r\n"; 

嘗試拿到常規時間戳,並添加UTC偏移

//America/New_York 
    $date = new DateTime(null, new DateTimeZone('America/New_York')); 
    echo 'America/New_York: '.($date->getTimestamp() + $date->getOffset()).'<br />'."\r\n"; 
0

您可以添加時間戳列這樣的改變你的表....

ALTER TABLE `table1` ADD `lastUpdated` TIMESTAMP 
ON UPDATE CURRENT_TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP 

這會添加一個名爲'lastUpdated'的列,其中包含當前日期/時間的默認值。當記錄更新時(可以說5分鐘後)時間戳會自動更新到當前時間。

相關問題