【问题标题】:Laravel carbon wrong timezoneLaravel 碳时区错误
【发布时间】:2016-07-03 04:33:46
【问题描述】:

我有一个带有身份验证的 laravel 5.2 应用程序。我已经构建了一个自定义全局中间件,它为每个用户更新 users 表上的“last_seen”列。

注意:它是一个在请求之后运行的中间件。

我使用“UTC”时区,以便在计算世界任何地方的差异时不会出错。

一切正常,如预期的那样,直到我注销。当我注销时,该列会更新为我当前时区“罗马尼亚”中的时间。 我不知道为什么会这样,因为我从未声明过“UTC”以外的时区。

这是我的中间件代码:

<?php

namespace App\Http\Middleware;

use Auth;
use Closure;
use Carbon\Carbon;

class LastSeenMiddleware
{
    public function handle($request, Closure $next)
    {
        $response = $next($request);

        if(Auth::check()){
            Auth::user()->last_seen = Carbon::now();
            Auth::user()->save();
        }

        return $response;
    }
}

【问题讨论】:

    标签: php laravel-5 php-carbon


    【解决方案1】:

    我找到了解决办法。

    显然,在我的表架构声明中,我忘记将 last_seen 列设置为可空,因此,即使我不是故意的,它也会使用当前服务器时间戳进行更新。

    我通过查看默认 created_at 和 updated_at 列的源代码发现了这一点。

    【讨论】:

      猜你喜欢
      • 2016-11-08
      • 2022-01-25
      • 1970-01-01
      • 2017-08-30
      • 1970-01-01
      • 2017-08-30
      • 2021-03-18
      • 2018-01-01
      • 2017-11-28
      相关资源
      最近更新 更多