【问题标题】:Week Commencing in Laravel 4Laravel 4 开始的一周
【发布时间】:2013-05-01 05:26:33
【问题描述】:

我有一个 $events 对象,它使用 Laravel 4 中的查询生成器从我的数据库中的各种表中获取一堆结果。请参阅此处http://paste.laravel.com/qIj

我想将这些结果分成一周开始,所以当我在视图中输出它们时,它会根据事件表的 start_date 字段中的信息按周对所有内容进行分组。

任何想法如何最好地实现这一目标?干杯。

【问题讨论】:

    标签: php date laravel laravel-4 weekday


    【解决方案1】:

    这有帮助吗?我不熟悉查询生成器,但你能从它开始的一周过去吗?

    Get date of Monday in current week in PHP 4

    【讨论】:

    • 干杯。我真的不确定。
    【解决方案2】:

    我通常会这样做:

    <?php
    // Event model
    public function getAllByWeek() {
        $events = static::orderBy('created_at', 'DESC')->get();
        $orderedEvents = array();
    
        foreach ($events as $event) {
            $date = new \DateTime($event->created_at);
            $weekCategory = $date->format('oW');
            $weekFormatted = $date->format('W');
    
            if ( ! array_key_exists($weekCategory, $orderedEvents)) {
                $orderedEvents[$weekCategory] = (object) array(
                    'week' => $weekFormatted,
                    'events' => array(),
                );
            }
    
            $orderedEvents[$weekCategory]->events[] = $event;
        }
    
        return $orderedEvents;
    }
    
    // Controller
    $orderedEvents = Event::getAllByWeek();
    
    // View
    @foreach ($orderedEvents as $eventsHolder)
    
        {{ $eventsHolder->week }}
    
        @foreach ($eventsHolder->events as $event)
    
            // content output
    
        @endforeach
    
    @endforeach
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多