Laravel Carbon:为什么 now() 提前 1 天?

Dam*_*mon -1 php-carbon laravel-5

我在播种机中使用它:

'created_at' => Carbon::now(),
'updated_at' => Carbon::now(),
Run Code Online (Sandbox Code Playgroud)

我得到了正确的日期/时间,但正好提前了 1 天。

我试过了:

Carbon::now(new DateTimeZone('America/Chicago')),
Run Code Online (Sandbox Code Playgroud)

在我的播种机文件中,它似乎有效。但是,当我从控制器插入记录时,日期不正确。

我正在$table->timestamps();用来创建列 - 是否有可以输入正确时区的配置设置?或者,还有什么我做错了吗?

Mah*_*lam 5

默认情况下,Laravel 使用'timezone' => 'UTC',而您的原始时区America\Chicago'timezone' => 'UTC-06:00'.

如果您希望固定时区以将America/Chicago时区设置为

'timezone' => 'America/Chicago'
Run Code Online (Sandbox Code Playgroud)

config/app.php文件中。

如果您想在运行时设置它,您可以通过以下方式完成:

config(['app.timezone' => 'America/Chicago'])
Run Code Online (Sandbox Code Playgroud)