【问题标题】:Carbon Timezone and format not working together碳时区和格式不能一起工作
【发布时间】:2019-12-16 20:02:29
【问题描述】:

这是我的代码

$time = '2019-12-16T10:14:35.000000Z';

$var = new Carbon($time);

$var = $var->setTimezone('Asia/Dhaka')->format('Y-m-d H:i:s');

我期待的回报是'2019-12-16 4:14:35'

我得到的回报'2019-12-16 10:14:35'

如果我删除格式功能,我会得到正确的时区 '2019-12-16T4:14:35.000000Z'

显然 setTimeZone 不适用于 Format。我在这里想念什么?

我知道可能存在重复问题,但似乎没有一个解决方案适合我。

【问题讨论】:

    标签: php php-carbon


    【解决方案1】:

    如果您的源时间戳始终在 UTC 时区。 所以将您的代码更改为:

    $var = Carbon::createFromFormat('Y-m-d H:i:s', $timestamp, 'UTC');
    $var = $var->setTimezone('Asia/Dhaka');
    

    【讨论】:

    • 试过了。不工作。返回 UTC 时间而不是更新的时区。
    • @Scarecrow 更改了答案。试试看:)
    • 太棒了。现在我知道我错过了什么。
    【解决方案2】:

    你可以这样设置时区

    $time = '2019-12-16T10:14:35.000000Z'; 
    $var = Carbon::createFromFormat('Y-m-d H:i:s', $time, 'Asia/Dhaka');
    

    【讨论】:

      【解决方案3】:

      试试这个:

      $var = Carbon::createFromFormat('Y-m-d H:i:s', $timestamp, 'Europe/Madrid');
      $var = $var->setTimezone('Asia/Dhaka');
      

      【讨论】:

        猜你喜欢
        • 2015-04-20
        • 2018-06-06
        • 1970-01-01
        • 2015-04-27
        • 2014-01-07
        • 2019-08-17
        • 2016-11-23
        • 2019-02-18
        • 2015-05-16
        相关资源
        最近更新 更多