我使用Envato API來驗證在其網站上進行的購買,並且作爲購買的API查詢的一部分輸出的日期/時間就像這樣:在PHP中轉換日期格式(但是這是什麼格式?)
Wed May 20 06:37:57 +1000 2015
首先,什麼格式這是(有一個名字爲它,以及在PHP日期/時間格式條款?),其次我怎麼能轉換成不同的格式呢?
當我使用strtotime()
功能,然後date()
如下,輸出似乎是錯誤的幾個小時。這可能是因爲Envato(澳大利亞)和我(英格蘭)之間的時區不同,還是我錯過了什麼?
$old = strtotime("Wed May 20 06:37:57 +1000 2015");
echo date('Y-m-d H:i:s', $old);
以上輸出結果如下:2015-05-19 22:37:57
。
任何幫助將不勝感激,謝謝!
我不知道,但我覺得你可以直接從日期格式創建一個新的日期對象。然後打印它的格式就像你想..也許這樣? http://sandbox.onlinephpfunctions.com/code/0a1d2686d74801eb4422f5845277c3ee1d444925(輸出:2015-05-20 06:37:57)。無論如何,提出問題+1。請注意,如果您更改時區,您將針對每一個日期執行此操作。如果您創建日期時間對象,它將在該日期專門適用。 – briosheje
@briosheje - 太好了,謝謝。如果我沒有指定時區(就像我原來的文章),這是否意味着PHP會自動將它從澳大利亞時間轉換爲英國時間?我很困惑,原來的代碼是從5月20日到5月19日改變它的,而時間(小時)也是錯誤的。 –
你應該聽取briosheje的建議 - 使用'DateTime :: createFromFormat(...)',並明確地指定輸入格式,而不是交叉手指並希望'strtotime'能夠形成格式。作爲獎勵,您將得到一個完整的,可識別時區的日期對象,而不僅僅是一個時間戳。 – DCoder