【问题标题】:Laravel Carbon format method unexpected resultLaravel Carbon 格式方法意外结果
【发布时间】:2016-07-06 10:45:57
【问题描述】:

我得到了我的数据库的这个日期:

$ticket = array('date'  => '05-07-16 16:07:14') # day/month/year

在我的 Blade.php 中,用 Carbon 格式化这个日期:

{{ \Carbon\Carbon::parse($ticket['date'])->format('d-m-Y') }}

这返回了我 -> '16-07-2005'

但我想要这个 '05-07-16'

年份和日期不正确。 2016 年是年份,05 是本月 (07) 日。

为什么格式 d-m-Y 不适合我?

【问题讨论】:

    标签: php laravel laravel-5.2 php-carbon


    【解决方案1】:

    在 Carbon 中使用 createFromFormat 方法

    {{ \Carbon\Carbon::createFromFormat('d-m-Y H:s:i', $ticket['date'])->format('d-m-Y') }}
    

    【讨论】:

    • 这给我返回了这个错误:Carbon.php 第 425 行中的 ErrorException:格式分隔符不匹配 格式分隔符不匹配 格式分隔符不匹配 格式分隔符不匹配 格式分隔符匹配不匹配
    • 我认为它现在应该可以工作了。您会看到它使用第二个参数作为参考格式解析您的给定日期。所以你的日期格式和你用来解析它的格式应该匹配。
    • createFromFormat 有不同的签名 - 首先是格式,其次是日期,所以 {{ \Carbon\Carbon::createFromFormat('d-m-Y H:s:i', $ticket['date'])->format('d-m-Y') }}
    • 谢谢@Finwe,但是这回给我 05-07-0016,我可以得到 2016 年或当年吗?
    • 我认为您不能这样做,除非您在将日期解析为方法之前将 16 更改为 2016。因为 Carbon 不知道你指的是哪个世纪。
    猜你喜欢
    • 2018-03-13
    • 1970-01-01
    • 1970-01-01
    • 2015-03-24
    • 2018-06-27
    • 2016-12-01
    • 2018-09-02
    • 1970-01-01
    • 2018-07-24
    相关资源
    最近更新 更多