碳自动更改解析的日期时间字符串的时区

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

我试图简单地解析像“2024-3-3 16:00”这样的日期时间字符串,并进行一些其他计算,例如 addHour 并执行一些条件。问题是,当我尝试解析

2024-3-3 16:00
并返回它时,它返回
2024-3-3 14:00
。我不明白这怎么可能。我的
config/app.php
中的时区设置为
Africa/Cairo
。我的理解是,它采用 UTC 格式的日期时间并将其转换为配置时区。即使我明确地给它一个像
Carbon::parse('2024-3-3 16:00', 'Europe/London')
这样的时区,它也会返回相同的东西。有人可以解释一下发生了什么吗?

编辑 这段代码位于user.php 的routes 文件夹中,我创建了一个名为/run 的测试路由。我尝试在 Blade 中使用 Carbon::parse(...) ,效果很好。

class TestController extends Controller
{
    public function index() {
        return Carbon::parse('2024-3-3 16:00');
    }
}

输出

"2024-03-03T14:00:00.000000Z"

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

答案很简单,我觉得很愚蠢。我只需输入 UTC 格式的日期时间

Carbon::parse('2024-3-3 16:00', 'UTC')

© www.soinside.com 2019 - 2024. All rights reserved.