carbon将iso8601字符串解析为utc日期并将其记录到db

bq8i3lrv  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(497)

我有以下iso8601日期时间字符串 2018-03-12T10:34:15-0200 在我分析之后

Carbon::parse("2018-03-21T10:34:15-0200", 'UTC')

并保存到mysql数据库 datetime 我的专栏 2018-03-21 10:34:15 所以我失去了 -0200 与utc时区的时差。
有什么办法解决这个问题吗?

iih3973s

iih3973s1#

您不需要传递时区作为解析函数的第二个参数。时区已经是日期字符串的一部分。如果需要以utc格式保存日期,只需在解析后将其转换为utc时区,如下所示:

Carbon::parse("2018-03-21T10:34:15-0200")->setTimezone('UTC')

转换日期为:2018-03-21 12:34:15.0 utc(+00:00)

相关问题