Laravel 5.5自定义集合first()方法

时间:2018-02-14 06:52:50

标签: php laravel-5

我有一个带值的集合

$collection = [{
              "date": "2018-02-14",
              "time": "08:00:00"
               },{
              "date": "2018-02-15",
              "time": "08:00:00"
              },{
              "date": "2018-02-16",
              "time": "08:00:00"
              }]

我需要以格式(2018-02-14 08:00:00到2018-02-16 08:00:00)将结果作为From:first()返回到last()。我尝试使用

$collection->first() and $collection->last()

如何将结果自定义为所需格式?

1 个答案:

答案 0 :(得分:0)

我开始将每个对象转换为Carbon对象以便于日期操作,然后对集合进行排序并使用第一个和最后一个项打印带格式的字符串:

$sorted = $collection->map(function ($item) {
    return Carbon::parse($item->date . ' ' . $item->time);
})->sort();

$range = sprintf('From: %s to %s', $sorted->first()->toDateTimeString(), $sorted->last()->toDateTimeString());