Php 将Iso 8601字符串解析为UTC日期并记录到db
我有以下Iso8601日期时间字符串Php 将Iso 8601字符串解析为UTC日期并记录到db,php,mysql,utc,php-carbon,iso8601,Php,Mysql,Utc,Php Carbon,Iso8601,我有以下Iso8601日期时间字符串2018-03-12T10:34:15-0200,在我解析它之后 Carbon::parse("2018-03-21T10:34:15-0200", 'UTC') 并将其保存到mysql dbdatetime列中,我有2018-03-21 10:34:15,因此我丢失了与UTC时区的-0200小时差 您知道如何正确地解决它吗?您不需要将时区作为第二个参数传递给解析函数。时区已经是日期字符串的一部分。如果需要以UTC格式保存日期,只需在解析后将其转换为UTC时
2018-03-12T10:34:15-0200
,在我解析它之后
Carbon::parse("2018-03-21T10:34:15-0200", 'UTC')
并将其保存到mysql dbdatetime
列中,我有2018-03-21 10:34:15
,因此我丢失了与UTC时区的-0200
小时差
您知道如何正确地解决它吗?您不需要将时区作为第二个参数传递给解析函数。时区已经是日期字符串的一部分。如果需要以UTC格式保存日期,只需在解析后将其转换为UTC时区,如下所示:
Carbon::parse("2018-03-21T10:34:15-0200")->setTimezone('UTC')
转换日期为:2018-03-21 12:34:15.0 UTC(+00:00)非常感谢