【问题标题】:Laravel Carbon format wrong dateLaravel Carbon 格式错误的日期
【发布时间】:2019-12-08 17:11:41
【问题描述】:

我正在使用 Laravel 和 Carbon 来格式化日期。

我有这个代码:

print_r($data['date']); //Saturday, 11 Jan, 2020
$data['date'] = Carbon::parse($data['date'])->format('Y-m-d');
dd($data['date']);

但输出是:

2020 年 1 月 11 日,星期六

“2019-01-12”

如您所见,2020 年转换为 2019 年......为什么?如何解决这个问题?

【问题讨论】:

    标签: php laravel date php-carbon


    【解决方案1】:

    我不确定 Laravel,但标准的 DateTime 解析器不理解 Saturday, 11 Jan, 2020 的格式。您必须明确告诉解析器如何解析字符串。比如:

    $date = DateTime::createFromFormat('l, j M, Y', $data['date'])->format('Y-m-d');
    

    【讨论】:

    • 谢谢。您的解决方案工作正常,但很奇怪,因为“2019 年 1 月 11 日星期六”是在 2019-01-11 中使用 Carbon 转换的 ...
    • 它将 2020 年解释为小时和分钟,即 20:20。结果日期为 2019 年,因为解析器找不到年份,因此默认为当前年份。
    • 请注意,Carbon::createFromFormat($format, $time, $tz) 也应该可以工作。
    猜你喜欢
    • 2016-12-01
    • 2018-01-10
    • 2018-06-27
    • 2018-04-20
    • 2016-02-28
    • 2021-11-30
    • 2018-03-13
    • 2023-02-07
    • 2018-02-02
    相关资源
    最近更新 更多