2016-11-30 5 views
-1

Я использую это в сеялке:Laravel Carbon: Почему сейчас() ровно на 1 день вперед?

'created_at' => Carbon::now(), 
'updated_at' => Carbon::now(), 

И я получаю правильную дату/время, но это ровно 1 день вперед.

Я попытался:

Carbon::now(new DateTimeZone('America/Chicago')), 

В моих файлах сеялки, и это, кажется, работает. Однако, когда я вставляю записи с контроллера, дата неверна.

Я использую $table->timestamps(); для создания столбцов - есть ли настройка конфигурации, в которой я могу ввести правильный часовой пояс? Или, что-то еще я делаю неправильно?

ответ

3

По умолчанию Laravel использует 'timezone' => 'UTC',, тогда как ваш исходный часовой пояс America\Chicago is 'timezone' => 'UTC-06:00'.

Если вы хотите, чтобы ваш часовой пояс для крепления к America/Chicago установить часовой пояс для

'timezone' => 'America/Chicago' 

в config/app.php файле.

В случае, если вы хотите установить его на время выполнения вы можете выполнить, что, следуя пути:

config(['app.timezone' => 'America/Chicago']) 
+0

Спасибо! Я пытался (и не смог) сделать это в файле .env – Damon