2017-08-28 12 views
0

Laravelののtimezoneの値を変更する方法はありますか。コンピュータの時刻は同じになるでしょうか?Laravel 5.4 - タイムゾーンの設定

現在、アジア/マニラに設定されています。あなたがPHPでサポートされているタイムゾーンを設定する必要が

'timezone' => 'Asia/Manila',

答えて

0

。使用可能なタイムゾーンについての概要は、ここをクリックしてください:

タイムゾーンをapp/config/app.phpに設定すると、あなたのタイムゾーンと同じである必要があります。あなたが忘れていない時間帯を変更した後php artisan config:cache.スウェーデンについては

はあなたが動的に日付変更"Europe/Stockholm"

にタイムゾーンを設定する例:

AppServiceProviderを前方に移動し、サービスプロバイダを作成し、または使用して、設定しますそこの設定値。

//lets say you want to set timezone based on $timestamp 
    $timestamp = '2017-02-06 14:34:00'; 
    $date = Carbon::createFromFormat('Y-m-d H:i:s', $timestamp, 'Europe/Stockholm'); 
    $date->setTimezone('UTC'); 

    Config::set('app.timezone', $date); 
+0

「timezone」の値を変更せずに、コンピュータの時刻を変更することで動的に変更できるようにしたいと思います。 –

+0

あなたは私の編集した回答を確認することもできます –

0

私がアプローチする方法は、データベース内のすべてを常にUTCとして保存することです。これをサーバー側で決して変更しないでください。誰かがログインすると、私はmomentjs-timezoneと一緒にmomentjを使って、クライアント側のタイムゾーンを推測し、それをログインページの隠しフィールドに追加します。ユーザーのセッションにタイムゾーンを格納します。

次に、datetimeを格納する方法を変更しないで、表示方法を変更します。誰かがそれにログインするたびに自分のコンピュータが現在に設定されているもののオフに基づいて時刻を表示する必要がありそうすれ

{{ $model->created_at->timezone(Session::get('timezone'))->format('M j, Y g:ia') }} 

:これは私の刃テンプレートの多くがどのように見えるかです。

<input type="hidden" name="timezone" id="timezone" value="" /> 
<script> 
    document.getElementById('timezone').value = moment.tz.guess(); 
</script> 
+0

"決してこれをサーバー側で変更しないでください。"私はいつもUTCを使うべきですか?私の場合のように、それが場所のタイムゾーンにあるなら、どうなるでしょう。私は始めから「アジア/マニラ」を使ってきました。 –

+0

それから私はデータベースの時代を変換するでしょう。それは何があっても常にUTCを使用することの全ポイントです。どのタイムゾーンが設定されているかを心配する必要はありません。それ以外の場合は、 'Y-m-d H:i:s'だけのdatetimeを保存する必要があります。また、UTCオフセットも保存する必要があります。 – Pitchinnate

関連する問題