不断从 Carbon Laravel 获取未知或错误的时区

Keep getting Unknown or bad timezone from Carbon Laravel

我正在尝试使用 Carbon 将日期添加 2 个月,但我一直收到此错误:

InvalidArgumentException in Carbon.php line 252:
Unknown or bad timezone (2017-02-25 14:25:24)

这是我的代码:

<?php
public function giveMonths(Request $request)

    {   

        $query = DB::table('users')->where('level', '=', 2)->get();

        foreach ($query as $row) {

            $id = $row->id;

            $expires = $row->expires;

            $newDate = Carbon::now($expires)->addMonths(2);

            dd($newDate);
        }

在 "app.php" 中,时区是这样设置的:

'timezone' => 'America/Sao_Paulo'

数据库中存储的时区格式为:

2017-02-25 03:51:12

我该如何解决这个问题?

你用错了方法。使用 now 时必须将时区作为参数传递。在您的情况下,您应该使用 parse 方法。

$query = DB::table('users')->where('level', '=', 2)->get();

foreach ($query as $row)
{
 $id = $row->id;
 $expires = $row->expires;
 $newDate = Carbon::parse($expires)->addMonths(2);
 dd($newDate);
}