私はCarbon拡張機能の使用を開始したばかりです(これまでのところかなりすばらしいようです)が、Carbon::now()
関数について混乱しています。ドキュメントによると、この関数はユーザーの現在のタイムゾーンの現在の時刻を反映しているように見えますが、GMTより1時間進んでいるようです。
つまりCarbon::now()
は、PSTを使用しているときに2015-01-01 17:26:46
と表示され、現在は2015-01-01 08:26:46
です。
すべてのインスタンスについて、ユーザーのローカルタイムゾーンを検出して配置する必要がありますか?
何ができますか? (私はウェブサイトがユーザーの現地時間をどのように取得するかについて根本的な誤解をしているかもしれません)
これは、サーバーのタイムゾーンがユーザーのタイムゾーンと異なるためと考えられます。
これは次の原因で発生する可能性があります。
説明したように、サーバーのタイムゾーンは+1 GMTのCET(中央ヨーロッパ時間)のようです。
これを修正するには php.ini
ファイルのタイムゾーンを変更 (手順はリンクから):
php.ini
ファイルを開きますdate.timezone = "米国/中部"
または、US/Central
タイムゾーンを目的のタイムゾーンに置き換える必要があります ここで概要を示します 必要に応じてPHP別のタイムゾーンを使用します。
CarbonはUTCベースであるため、単にCarbon::now()
を実行すると、時刻がUTC形式で出力されます
都市または地域のdateTimeを正確に反映するには、タイムゾーンを指定する必要があります。
これを行うには2つの方法があります。次のいずれかを実行できます。
Carbon::now('PST')
OR Carbon :: now( 'Continent/City') like (Carbon::now('America/Montreal')
例えば
Config/app.phpでタイムゾーンを変更します
'timezone' => 'YOUR TIME ZONE',