【问题标题】:Carbon returns different dateTime when parsingCarbon 在解析时返回不同的 dateTime
【发布时间】:2021-09-29 01:05:55
【问题描述】:

我也有一个日期字符串和开始时间作为字符串,我首先将日期与 PHP date() 对象组合,然后解析为 Carbon 对象,当我返回 carbon 对象时,我得到的 dateTime 与预期不同结果,例如$combinedDt = 2021-09-28 19:33,当我返回$parsed时,我得到的2021-09-29T00:33:00.000000Z"与输入日期不同

        $combinedDT = date('Y-m-d H:i', strtotime("$request->date $request->start_time"));
        $parsed = new Carbon($combinedDT, 'America/Bogota');

        return $parsed;

我该如何解决这个问题。

【问题讨论】:

  • 检查config/app.php中的默认应用程序时区
  • 一切都是正确的。首先,您可以获得您所在位置的确切日期。在第二个中,您将获得 UTC-0 日期,它按小时混合。如果你把它们带到同一个时区,那么它们是一样的

标签: php laravel php-carbon


【解决方案1】:

使用两个不同的时区是很自然的。您可以在配置中设置相同的时区,也可以使用它。

  $parsed= Carbon::createFromFormat('Y-m-d H:i', $request->date)
                        ->setTimezone('America/Bogota');

  return $parsed;

【讨论】:

    【解决方案2】:

    你可以试试这个,而不是创建 2 个不同的日期对象

    $parsed = Carbon::createFromFormat('Y-m-d H:i', $request->date.' '.$request->start_time));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-09
      • 1970-01-01
      • 2011-12-14
      • 1970-01-01
      • 2020-09-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多