[英]How can I change the timezone of a date string?
我想更改以下時間的時區:
2015-08-24 01:30:40
因此它位於America/Los_Angeles
時區,但是下面的代碼無法正常工作:
$timedate = date_timezone_set(
date_create_from_format('Y-m-d h:i:s A', $row[timezone]),
new DateTimeZone('America/Los Angeles')
);
$row[timezone]
自行成功返回2015-08-24 01:30:40
,但是當我這樣嘗試更改時區時,它不起作用。
之后的所有PHP代碼都不會運行。 我已經做了很多搜索,但是我不知道如何使它正常工作,所以有人可以告訴我我做錯了什么嗎?
您對date_create_from_format的調用在格式字符串的末尾包含一個A-對我來說似乎很奇怪,因為您的值不以am或pm結尾。 您對h
使用似乎也不太可能正確,因為這是一天中的12個小時,這在沒有am / pm指示器的情況下沒有用。 我懷疑您想要的格式
Y-m-d H:i:s
這似乎更適合您的示例字符串...
此外 ,如評論中所述,您的時區ID應該是'America/Los_Angeles'
而不是'America/Los Angeles'
。
我還將在這一行大代碼中分開您的各種調用,以使其更易於診斷-這樣一來,您就可以知道這是解析失敗,而不是與時區有關。 您在這里有三個單獨的操作:
將這三個代碼放在單獨的語句中將使代碼更易於閱讀和維護。 (特別是,您將能夠獨立找到並糾正這兩個問題...)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.