代码之家  ›  专栏  ›  技术社区  ›  richzilla

用PHP组织日期

  •  1
  • richzilla  · 技术社区  · 14 年前

    我想按以下格式组织一系列日期。作为一点上下文,日期是我的用户可以添加的即将发生的事件的日期。格式:

    2011年1月

    日期-事件

    日期-事件

    日期-事件

    2011年2月

    日期-事件

    日期-事件

    日期-事件

    一个月内发生的所有事件,按事件发生的日期排列。我的所有事件日期都作为Unix时间戳存储在数据库中。问题是,我不知道从哪里开始开发一个函数,它可以用这种方式对我的所有事件进行排序。有人能帮我吗?

    干杯

    2 回复  |  直到 14 年前
        1
  •  4
  •   Philippe Gerber    14 年前

    我喜欢首先使用数组索引对项目进行分组。

    控制器

    $months = array();
    foreach ($rows as $row) {
        $month = date('F Y', strtotime($row['date']);
    
        if (!isset($months[$month]) {
            $months[$month] = array();
        }
    
        $months[$month][] = $row;
    }
    

    视图

    foreach ($months as $month => $events) {
        echo '<h2>' . $month . '</h2>';
        foreach ($events as $event) {
            // ...
        }
    }
    
        2
  •  2
  •   Byron Whitlock    14 年前

    迭代事件;跟踪上个月看到的事件。如果是当月!=上个月,显示月份分隔符。

    $lastDate = '';
    
    foreach ($events as $e)
    {   
        $currDate = date('F Y', $e->date);
        if ($currDate != $lastDate )
        {
            echo "<h1>$currDate</h1>";
        }
        // might want to format the date to be human readable here...
        echo "<li>$e->date, $e->event"; 
        $lastDate = $currDate;
    
    }