動作しません:私は、グローバルHTTPミドルウェア宣言の下にこのクラスを追加 タイムゾーンミドルウェアは、私がデータベースに設定された認証ユーザーのタイムゾーンに基づいてタイムゾーンを設定するためにミドルウェアを作成し
<?php
namespace App\Http\Middleware;
use Closure;
class TimezoneMiddleware
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if ($request->user()->guest()) {
$timezone = config('app.timezone');
}
else {
$timezone = $request->user()->timezone;
}
date_default_timezone_set($timezone);
return $next($request);
}
}
Kernel.php
。
問題は機能しないということです。 created_at
フィールドを表示すると、データベースのユーザータイムゾーンを設定しても、時間はまったく同じにとどまります。
データベースのすべての日付と時刻はUTCで保存されます。データベースクエリから返される何らかの変換を行わない限り、 – RiggsFolly
私は、データベースからフェッチされた 'timestamp'がユーザ指定のタイムゾーンを使いたいだけです。私はミドルウェア、サービスプロバイダ、何も動作していない。道に迷いました。私はdatatablesを使用しているので、これを自動的に実行します。 – kjdion84
おそらくこれを読む必要がありますhttp://stackoverflow.com/questions/15017799/how-to-convert-utc-date-to-local-time-zone-in-mysql-select-query – RiggsFolly