web-dev-qa-db-ja.com

タイムスタンプにLaravel Carbonタイムゾーンを設定するには?

私は主に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

10
Yuray

Carbonは、デフォルトのDateTime PHPオブジェクトを使用します。したがって、date_default_timezone_set()関数を使用します。例:date_default_timezone_set('Europe/London');

14
thefallen

appServiceProvider.phpでは、php機能を追加してプロジェクト全体のタイムスタンプを変更できます

public function boot()
{
    Schema::defaultStringLength(191);
    date_default_timezone_set('Asia/Aden');
}
8
Hisham Shami

更新ファイルconfig/app.php

例:'timezone' => 'Asia/Jerusalem' の代わりに 'timezone' => 'UTC'

4
Adam Pery

ミューテーターで達成できます

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
}
4
GONG

解決策は、「CET」ではなく、明示的なタイムゾーンの1つを使用することです。たとえば、「Europe\Minsk」

PHPタイムゾーン

タイムゾーンLaravel 4

2
Yuray

Laravel Carbon TimeStampsを使用している場合、App/Providers/AppServiceProvider.phpファイルでタイムゾーンを変更する必要があります

// App/Providers/AppServiceProvider.php

public function boot()
{
    date_default_timezone_set('Asia/Calcutta');
}
1
Ashwani Garg