如何在PHP中使用BRT时区缩写解析字符串

问题描述 投票:3回答:1

我在不同时区具有不同的字符串: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 TDateTime::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

php datetime php-carbon
1个回答
0
投票

您可以在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”}
© www.soinside.com 2019 - 2024. All rights reserved.