Carbon将Iso 8601字符串解析为UTC日期并将其记录到db

时间:2018-09-25 19:32:10

标签: php mysql utc php-carbon iso8601

我有以下Iso8601日期时间字符串2018-03-12T10:34:15-0200,并且在解析之后

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

并将其保存到mysql db datetime列中,我有2018-03-21 10:34:15,所以我失去了与UTC时区的-0200小时差。

任何想法如何正确解决问题?

1 个答案:

答案 0 :(得分:2)

您无需将时区作为第二个参数来解析函数。时区已经是日期字符串的一部分。如果您需要将日期保存为UTC,只需在解析后将其转换为UTC时区即可:

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

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