【问题标题】:Carbon parse Iso 8601 string to UTC date and record it to dbCarbon 将 Iso 8601 字符串解析为 UTC 日期并将其记录到 db
【发布时间】:2019-03-01 12:14:08
【问题描述】:

我有以下 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 所以我失去了 -0200 与 UTC 时区的小时差。

任何想法如何以正确的方式解决它?

【问题讨论】:

    标签: php mysql utc php-carbon iso8601


    【解决方案1】:

    这样做

    Carbon::parse("2021-12-23T07:42:42.393Z")->setTimezone('UTC')->format('Y-m-d H:i:s');
    

    //响应 2021-12-23 07:42:42

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

      • 非常感谢
      猜你喜欢
      • 2021-01-17
      • 1970-01-01
      • 1970-01-01
      • 2019-02-27
      • 1970-01-01
      • 2013-05-14
      • 1970-01-01
      • 2014-11-25
      • 1970-01-01
      相关资源
      最近更新 更多