我在不同时区具有不同的字符串:2019-11-13 00:52:03日2019-11-13 00:52:03 EET2019-11-13 00:52:03 BRT
我将格式Y-m-d H:i:s T
与DateTime::createFromFormat
一起使用以获取日期时间对象。
但是下一个代码返回FALSE:DateTime::createFromFormat('Y-m-d H:i:s T', '2019-11-13 00:52:03 BRT')
问题: PHP无法识别BRT缩写时区。
有什么办法可以克服这个问题?例如,我可以在PHP时区列表中添加新的缩写吗?
P.S。
date_default_timezone_set('America/Sao_Paulo');
echo date_default_timezone_get();
echo ' => '.date('T');
返回America/Sao_Paulo => -03
您可以在DateTime::createFromFormat
中通过使用反斜杠字符将其转义来提供文字。因此,根据您的情况,您将需要手动设置时区。
$date = DateTime::createFromFormat(
"Y-m-d H:i:s \B\R\T",
"2019-11-13 00:52:03 BRT",
new DateTimezone("America/Sao_Paulo")
);
var_dump($date);
哪个给你...
object(DateTime)#2(3){[“ date”] =>字符串(26)“ 2019-11-13 00:52:03.000000”[“ timezone_type”] =>整数(3)[“时区”] =>字符串(17)“ America / Sao_Paulo”}