我正在創建這篇文章,以獲得確認,我正確理解過程,並獲得有關解決問題的一些小細節的反饋後期時間顯示並正確存儲在不同時區的用戶。PHP顯示存儲的時間數據,並存儲時間數據,同時考慮不同的時區
存儲
第一步是獲得用戶時區作爲GMT使用JavaScript函數偏移格式,並將其存儲在一個會話變量的時間。例如,$ timezone變量將存儲GMT -4
$timezone=$_SESSION['time'];
接下來,一旦我有我的用戶時區。當用戶發佈帖子時,我將發佈時間存儲在mysql數據庫中,我需要將其存儲爲UTC格式。我該怎麼做呢?目前當我存儲時間數據。它是以下列方式。我的郵票字段是日期時間格式,如果可能,我想離開它。
INSERT INTO posts (stamp) VALUES (now())
我用什麼函數代替now()來獲取UTC格式,然後將其插入到我的數據庫中?我假設我需要使用一個php函數,它將使用$ timezone生成UTC日期。
顯示時間
接下來,一旦UTC日期存儲在數據庫中。我需要根據我們設置的$ timezone變量向用戶顯示數據。
所以,當我顯示時間,我目前做
echo date('F d', strtotime($list1['stamp']));
一旦我有存儲的數據作爲UTC時間,這將顯示UTC時間,但我需要顯示UTC的偏移用戶自己時區,所以我需要使用$ timezone將UTC時間的$list['stamp']
轉換爲用戶時區。我爲此使用了什麼功能?
tl:dr 這應該是我需要做的工作。讓我知道你是否看到任何建議,或者我還沒有考慮過的項目,以及如果你知道我需要使用什麼函數將時間轉換爲UTC以存儲在數據庫中,以及使用什麼函數來轉換UTC時間使用$ timezone變量顯示用戶。
不是一個正確的答案,但我發現DateTime類和它的setTimezone方法在過去很有用。 – Corbin
非常感謝,我會考慮一下。 – arboles