私は主にCET地域に基づいているプロジェクトを持っています。 config/app.phpでCETを設定しましたが、ベースのすべてのピボットタイムスタンプはUTC時間で保存されますか?
タイムスタンプに「グローバル」タイムゾーンを設定するにはどうすればよいですか?
私はこのテストを行いました:
<?php
$timezone = date_default_timezone_get();
echo "The current server timezone is: " . $timezone;
echo "<br />".date('m/d/Y h:i:s a', time());
$mytime = Carbon\Carbon::now();
echo "<br />".$mytime->toDateTimeString();
?>
結果は次のとおりです。
The current server timezone is: CET
06/09/2016 12:06:04 pm
2016-06-09 11:06:04
tnx Y
Carbonは、デフォルトのDateTime PHPオブジェクトを使用します。したがって、date_default_timezone_set()関数を使用します。例:date_default_timezone_set('Europe/London');
appServiceProvider.phpでは、php機能を追加してプロジェクト全体のタイムスタンプを変更できます
public function boot()
{
Schema::defaultStringLength(191);
date_default_timezone_set('Asia/Aden');
}
更新ファイルconfig/app.php
例:'timezone' => 'Asia/Jerusalem'
の代わりに 'timezone' => 'UTC'
ミューテーターで達成できます
public function getCreatedAtAttribute($value)
{
return Carbon::createFromTimestamp(strtotime($value))
->timezone(Config::get('app.timezone'))
->toDateTimeString(); //remove this one if u want to return Carbon object
}
Laravel Carbon TimeStampsを使用している場合、App/Providers/AppServiceProvider.phpファイルでタイムゾーンを変更する必要があります
// App/Providers/AppServiceProvider.php
public function boot()
{
date_default_timezone_set('Asia/Calcutta');
}