【问题标题】:Format Timezone for Carbon Date碳日期的格式时区
【发布时间】:2015-04-20 10:34:51
【问题描述】:

我正在尝试为 Carbon 对象中的日期设置时区。它在本地运行良好,但在我的生产机器上它一直给我Bad timezone 错误。

我试过了:

$date->setTimezone('7');
$date->setTimezone('+7');
$date->setTimezone('7:00');
$date->setTimezone('+7:00');
$date->setTimezone('UTC 7');
$date->setTimezone('UTC +7');
$date->setTimezone('UTC 7:00');
$date->setTimezone('UTC +7:00');

不知道为什么它抱怨我的生产盒。也找不到有关在此处输入的“正确”格式的文档。有人可以帮忙吗?

仅供参考:local 是 windows,prod 是 Ubuntu box。

【问题讨论】:

  • here的问题一样吗?

标签: php laravel timezone laravel-5 php-carbon


【解决方案1】:

对于想知道的人,您可以像这样链接时区:

Carbon::now()->timezone('Europe/Stockholm')

【讨论】:

    【解决方案2】:

    我认为您应该参考official php timezone list。在您的情况下,您可以使用

    $date->setTimezone('Asia/Phnom_Penh');
    

    对于 UTC+7:00。

    【讨论】:

    • 这个是加到carbon.php文件还是控制器里?
    【解决方案3】:

    您可以通过以下方式更改时区:

    $timestamp = '2014-02-06 16:34:00';
    $date = Carbon::createFromFormat('Y-m-d H:i:s', $timestamp, 'Europe/Stockholm');
    $date->setTimezone('UTC');
    

    这种格式适用于我的 Local(Ubuntu) 和 prod(Redhat) 项目。

    【讨论】:

    • 我被卡住了,因为我尝试使用 createFromTimestamp 设置时区,即使它接受第二个参数。显然,时间戳总是在 UTC...
    • @mladen-janjetović 你能告诉我你的代码吗,你是怎么尝试的?
    • 如果你想改变应用程序的格式,你应该根据你的要求设置 config/app.timezone 组件。
    • 类似这样的事情,如果我记得很清楚$date = Carbon::createFromTimestamp($timestamp, 'EST'); 调用 ->timezone('UTC') 时不会返回正确的时间。 app.timezone 设置为 UTC。使用这个 createFromFormat 效果很好。
    • Carbon 会考虑夏令时吗?
    猜你喜欢
    • 2018-03-16
    • 2018-08-06
    • 2017-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-08
    • 1970-01-01
    相关资源
    最近更新 更多