【发布时间】:2018-10-24 07:53:45
【问题描述】:
每个人 我是 Laravel Lumen 框架的新手。我使用的是 Laravel Lumen 5.4.7,我的 PHP 版本是 7.0。我在使用 Laravel Lumen web api 在数据库中保存时区时遇到了问题。我在 .env 中更改了我的本地时区文件
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 没有在数据库中保存当前时区?
【问题讨论】:
-
能否指定数据库中保存的时区?
-
我在巴基斯坦。并且 date('Y-m-d H:i:s') 显示了我当前的当地时间。但它错误地保存在数据库中。我无法找到哪个时区保存在数据库中。现在我回显日期('Y-m-d H:i:s')。这次它显示我是 2018-10-24 13:06:04,这是绝对正确的。但是这次在数据库中保存的是 2018-10- 24 06:06:04
-
你用mysql吗?如果是这样,您能否发布以下查询的结果:
SELECT @@global.time_zone, @@session.time_zone;? -
是的,我正在使用 mysql。请查看此屏幕截图以获取查询结果。Query Result
-
您是否尝试过使用
config(['app.timezone' => env('APP_TIMEZONE')]);?