首页 > 解决方案 > 碳 - 日期采用 ISO8601 格式,带有偏移表示法

问题描述

我需要 Y-m-d H:i:s使用 Php Carbon 将用户给定的日期时间格式转换为带有偏移表示法的 ISO8601 格式。所需的时区是欧洲/柏林。

到目前为止我尝试过的是

     $from = '2021-05-01 00:00:00';
     $dateF = Carbon::createFromDate($from)->tz('Europe/Berlin')->format('Y-m-d\Th:i:sP');

我得到了几乎是我想要的结果

     2021-05-01T02:00:00+02:00

我真正需要的是准确的 h:i:s

     2021-05-01T00:00:00+02:00

有任何想法吗 ?

标签: phpphp-carbon

解决方案


小心你需要H而不是h0-23 小时。你只需要使用 parse 并在其中包含日期的时区,以使 Carbon 知道必须读取日期时间的时区:

$from = '2021-05-01 00:00:00';
echo Carbon::parse("$from Europe/Berlin")->format('Y-m-d\TH:i:sP');

createFromDate如果您关心$from变量中的小时/分钟/秒,那就不好了,因为它只返回您通过当前时间的日期。


推荐阅读