2017-05-10 85 views
0

在印度,如果我通過php date(),mysql NOW()和timestamp在三列中節省時間在2017-05-09 10:12:21左右。所以它產生結果將服務器時間轉換爲當地時間

date()      NOW()   timestamp 

2017-05-09 04:38:37 | 2017-05-08 22:38:37 | 2017-05-08 22:38:37

現在我想根據全球用戶時區將此時間轉換爲當地時間。我怎麼能做到這一點。請原諒我在PHP新的任何錯誤。

回答

0
$date = new DateTime($yourTimestamp, new DateTimeZone($timezone)); 
echo $date->format('Y-m-d H:i:sP'); 

$yourTimestamp爲本地時間的時間戳,以及$timezone是要時間戳轉換成時區。

時區:http://php.net/manual/en/timezones.php

0

this,如果你的MySQL列TIMESTAMP類型,日期時間存儲在UTC:它將從本地時區,而插入和檢索轉換。

要檢查什麼MySQL的默認時區爲,試試這個:

SELECT @@system_time_zone; 

PHP的date函數返回從當前Unix時間戳格式的日期字符串。它將使用當前的默認時區來格式化時間戳。你可以利用這個得到默認的時區:

echo date_default_timezone_get(); 

從我從你的問題的例子瞭解,這兩個時區必須是不同的,或者他們會表現出同樣的時間。

我認爲標準做法是將所有默認時區設置爲UTC,並根據請求的來源將它們轉換爲本地時區。這樣做並不像看起來那麼直截了當,因爲時區不是HTTP規範的一部分,但這可以幫助你:How to detect user's timezone?

如果您只是想將當前時區中的所有內容都存儲起來,並確信用戶不會介意,則可以將php和mysql中的默認時區更改爲當地時區。

的MySQL:How do I set the time zone of MySQL?

PHP:http://php.net/manual/en/function.date-default-timezone-set.php

相關問題