标签: 默认时区
-
针对 Laravel 6 框架默认时区为 Asia/Shanghai 但特定模型需存储 UTC 时间的需求,文章记录了尝试多种方案的过程。初期通过修改器及字符串判断处理 save() 方法,但在队列多次保存及 delete() 方法中仍出现时区不一致。最终通过覆写 SoftDeletes trait 的 runSoftDelete() 方法修正了软删除时的时区问题,并创建了 UtcSoftDeletes trait 供多个模型复用,确保存储时间准确为 UTC 格式。
-
本文探讨了在 Laravel 6 框架保持默认时区为 Asia/Shanghai 的前提下,将数据库存储的日期时间调整为 UTC 的方法。通过关闭模型自动管理时间戳并定义修改器,将属性值转换为 Carbon 实例,解决了 insert 和 push 方法产生的时区问题。最终方案通过在 update 方法中手动指定 updated_at,确保所有操作写入数据库的时间均为 UTC,符合预期。
