timezone - Laravel 流明没有保存正确的时区

标签 timezone lumen

大家 我是 Laravel Lumen Framework 的新手。我正在使用 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 没有在数据库中保存当前时区?

最佳答案

尝试将 'timezone' => env('APP_TIMEZONE', "UTC") 添加到您的 config/app.php 并运行 php artisan 缓存:之后清除

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

关于timezone - Laravel 流明没有保存正确的时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52963615/

相关文章:

mysql - 无法通过 SSL 将 Laravel 连接到 MySQL。 'PDO::__construct(): this stream does not support SSL/crypto'

mysql - 查询返回 0 而不是数据

php - 调用数据库返回不完整的数据

mysql - 如何从 .Net 时区转换为 MySQL 时区

laravel - 尝试在 Lumen 中重置密码

java - 如何在 ICU4J 中获得 "current"IANA 时区缩写?

postgresql - Postgresql的timezone(zone, timestamp)是做什么用的?

laravel - 如何使用相同的身份验证防护来验证多种类型的用户 [Lumen]

php - 帮我理解mysql当前时间和时区的now()

python-3.x - 用时区解析Python中的日期时间