如何在 GMT 0 中将日期保存在 Laravel 中?

How to save date in Laravel in GMT 0?

如何在数据库的 GTM 0 中保存日期?

我的意思是:protected $dates = ['created_at'];

您可以通过转到 config/app.php 文件并更改以下行来更改应用程序的时区:

'timezone' => 'GMT'

如果您的日期仍保存在不同的时区,服务器日期时间可能需要更改为 GMT。这可以使用以下命令并按照说明完成:

dpkg-reconfigure tzdata

我个人建议 leaving/setting 在您的应用配置中将时区设置为 UTC 而不是 GMT: https://www.timeanddate.com/time/gmt-utc-time.html

为了确保我的自定义日期字段存储正确,我在我的模型上使用了修饰符 class,如下所示:

public function setStartAtAttribute($date)
{
    $timezone = (Auth::check() ? Auth::user()->profile->timezone : config('pgn.phoenix.timezone'));
    $tzdate = Carbon::createFromFormat('d/m/Y H:i', $date, $timezone);

    $this->attributes['start_at'] = $tzdate->timezone('UTC');
}

那也需要 use Carbon\Carbon; 添加到模型的顶部。

上面的配置参数设置为 'Europe/London' 并且是我们的客人显示日期的时区(适用于夏令时),同时不影响 'system' 时区。