我正在一些網站(新聞門戶網站)在PHP和MySQL。當有新聞發佈時,我有最後一篇文章。我的時區和服務器時區是GMT + 2。我想從所有時區向所有客戶正確顯示時間。例如,如果消息被張貼在13:05
我的時區從GMT+3
14:05
從GMT+4
區15:05
顯示,爲客戶,爲客戶,爲12:05
,等等。怎麼做?什麼是解決方案,以及爲此目的在MySQL數據庫中存儲日期和時間的最佳方式是什麼?我也在我的網站中整合了Carbon,但是我找不到那個方法。PHP,MySQL - 如何顯示正確的時間張貼artical取決於客戶端時區
0
A
回答
0
我們在我們公司做的是我們所有的時間存儲在格林威治標準時間。儘管我們在南非。然後根據用戶的位置我們將時間轉換爲正確顯示。有很多方法可以確定用戶所在的位置並轉換時間,但最簡單的方法就是詢問他們住在哪裏並存儲該信息。
0
- 在時間戳中保留日期。
- 爲所有客戶存儲時區。
建立這樣的連接到數據庫運行查詢後:
SET @@session.time_zone = "+02:00";
或
SET @@session.time_zone = "Europe/Warsaw";
在哪裏時區偏移或名稱存儲客戶端的價值。
所有時間戳值將從定義的時區中的查詢返回。
0
儲存時像下面
date_default_timezone_set('UTC');
然後同時顯示的值使用任何時區js和使用AJAX發送時區服務器和存儲它獲取用戶時區的UTC時區的東西在數據庫存儲值在SESSION變量中,並在顯示日期時添加該時區。 例如 1)https://bitbucket.org/pellepim/jstimezonedetect/src
下載時區JS下面會給你時區
var tz = jstz.determine(); // Determines the time zone of the browser client
var timezone=tz.name(); // Returns the name of the time zone eg "Europe/Berlin"
使得Ajax調用,比如下面
$。員額( 「腳本/ set_timezone.php」 {timezone:timezone});
和set_timezone.php有代碼
session_start();
$_SESSION['user_timezone'] = $_POST['timezone'];
和同時顯示顯示與JS`偏移=新日期()如下
$date = new DateTime('2012-01-23 05:00:00', new DateTimeZone('UTC'));
$date->setTimezone(new DateTimeZone($_SESSION['user_timezone']));//This will from the session e.g Asia/Kolkata
$time= $date->format('Y-m-d H:i:s');
相關問題
- 1. 如何正確顯示客戶端的時間?
- 2. 如何在客戶端時區顯示日期和時間
- 3. 顯示日期/時間用戶的時區 - 在客戶端
- 4. 獲取用戶時區以顯示正確的時間
- 5. Mysql PHP存儲和顯示購買時間爲正確的用戶時區
- 6. 如何顯示客戶端時區和時區縮寫?
- 7. 紅寶石在軌道上,如何正確顯示客戶端的時間?
- 8. 如何獲取客戶端時區ID?
- 9. 客戶端的時區獨立時間
- 10. 如何爲移動客戶端顯示帶時區的時間戳
- 11. PHP Unix時間人力時間從MySQL表顯示不正確
- 12. 如何根據客戶端時區向用戶顯示日期
- 13. PHP時區轉換/ PHP日期不顯示正確的時區
- 14. 記錄時間在客戶端與客戶端時區
- 15. 如何在php中獲取客戶端的時間(cake php/core)
- 16. 顯示MySQL的時間戳正確
- 17. 如何在PHP中獲取客戶端時區
- 18. 如何根據用戶客戶端(燈)顯示時間和日期
- 19. 在客戶端/用戶時區的電子郵件內容/正文中顯示日期/時間/小時
- 20. 正確的時間顯示
- 21. 如何獲得客戶端的時區
- 22. 張貼客戶端的RAW身體
- 23. PHP時間顯示不正確
- 24. 在ASP.NET MVC中顯示客戶端時區中的日期時間
- 25. 如何向用戶顯示正確的時區?
- 26. 如何正確顯示時間戳
- 27. PHP中的客戶端時間
- 28. 如何檢測客戶端時區?
- 29. 如何獲得客戶端時區
- 30. 如果客戶端時間超前或滯後,如何在客戶端獲得確切的UTC/GMT時間?
使用getTimezoneOffset();' – splash58
我具有低使用javascript的經驗。我可以用客戶端PC(設備)時區的javascript獲取,並將其作爲字符串值(如「歐洲/布魯塞爾」)分配給PHP變量? –
不,你不能得到時區名稱,因爲他們中的許多人都有相同的時間轉換。但是你可以通過js或者將它發送到你的服務器來改變時間和改變 – splash58