首页 > 解决方案 > Laravel 流明没有保存正确的时区

问题描述

我是 Laravel Lumen 框架的新手。我使用的是 Laravel Lumen 5.4.7,我的 PHP 版本是 7.0。我在使用 Laravel Lumen web api 在数据库中保存时区时遇到了这个问题。我已经将我的本地时区更改为 .环境文件

APP_TIMEZONE=Asia/karachi

当我只是回显这段代码

date('Y-m-d H:i:s')

或这个

\Carbon\Carbon::now()

两行代码都返回我当前的本地时间,但是当我将这个时区保存在数据库中的“created_at”和“updated_at”字段时。它保存了错误的时区。为什么会发生这种情况?我正在使用这行代码保存数据数据库

$order_data=array(
        'amount'=>35,
        'updated_at' =>\Carbon\Carbon::now(),
        'created_at' =>\Carbon\Carbon::now()
    );
DB::table('orders')->insertGetId($order_data);

我也试过这行代码来保存数据

DB::table('orders')->insert($order_data);

但是在 created_at 和 updated_at 字段中的数据库中仍然有错误的时区。然后我还更新了我的代码以使用 Elequont,为此我创建了一个名为“Order”的模型,但在数据库中仍然有错误的时区。我的 Elequont 代码如下.

$order_data=array(
        'amount'=>35,
        'updated_at' =>\Carbon\Carbon::now(),
        'created_at' =>\Carbon\Carbon::now()
    );   
Order::create($order_data);

我已经尝试了太多来消除这个问题。但还没有运气。谁能帮我为什么 Lumen 没有在数据库中保存当前时区?

标签: timezonelumen

解决方案


尝试添加'timezone' => env('APP_TIMEZONE', "UTC")到您的config/app.php并在此之后运行php artisan cache:clear

也尝试添加DB_TIMEZONE=+05:00到您的.env文件(当然调整到您的 UTC 偏移量)


推荐阅读