我有一個PHP MySQL查詢,它將一些數據插入到MySQL數據庫中,並且它包含一個時間戳。php timestamp utc
目前INSERT
查詢使用NOW()
的時間戳列,它是在下面的格式保存在數據庫中:2012-07-24 13:13:02
不幸的是,我的服務器是不是在我的時區,被列爲美國/ Los_Angeles如圖print date_default_timezone_get();
我希望能做到以下幾點:
date_default_timezone_set('Europe/London');
$timefordbLondonEU = date('Y-m-d H:i:s', time());
,只是保存到數據庫中$timefordbLondonEU
代替NOW()
;
這是保存這些數據的好方法嗎?
非常感謝,
理查德
[添加的文本]
我改變了類型的MySQL數據庫,以DateTime
,也做了以下內容:
date_default_timezone_set('Europe/London');
$timefordbLondonEU = date('Y-m-d H:i:s', time());
這是工作,但我仍然沒有得到整體概念。
Assumptions based on your comments:
- 的MySQL =不具有您只需使用INT型數據類型UTC。
- Unix_TimeStamp()會保存當前時間還是計數?採用UTC格式,例如1343247227.
- 由於UTC是通用0點的計數,因此您可以從中獲取任何時區。假設你不想在1970年的參考0點之前建立一個日期。
我的猜測和從你所說的最好的方法是在INT中保存UTC的時間1343247227),然後從那裏生成你想要的任何時區。再假設你不需要在1970年的參考0點之前存儲日期。
同樣爲什麼不作爲日期時間存儲YYYY-MM-DD HH:MM:SS在已知時區,然後轉換爲UTC或其他時區。這一切似乎相當混亂=(
將所有時間存儲爲UTC,然後將它們轉換爲您在出路時所需的內容。 – Petah 2012-07-25 22:41:27
或者,如果您不需要在1970年之前存儲日期,則可以將它們存儲爲Unix時間戳,方法是將該字段設置爲「INT」。 – 2012-07-25 22:45:36