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

如何使用strtotime转换日期并在foreach中排序[重复]

  •  1
  • user3854916  · 技术社区  · 10 年前

    我有这个密码。

    function getSubMenu($page){
    
    
    $children=getChildren($page);   
    $sliced = array_slice($children , 0, 10);
    
    foreach ($sliced as $subpage){
        $title=returnPageField($subpage,'title');
        $date=returnPageField($subpage,'pubDate');
        $url=returnPageField($subpage,'slug');
        echo '<li><a href="/'.$url.'.html">'.$title.'</a>'.$date.'</li>';
    }
    

    }

    它回显子页面,但我需要在回显之前对其进行排序(按日期)。在“pubDate”中,以格式l,F jS,Y-g:i A(2014年7月18日星期五17:46:15+0400)保存日期,排序无效。如何使用strtotime转换所有日期,然后在echo之后排序?谢谢
    1 回复  |  直到 10 年前
        1
  •  1
  •   David Jacquel    10 年前
    function getSubMenu($page){
      $children=getChildren($page);
    
      // sorting by date
      usort($children, 'date_compare');
    
      $sliced = array_slice($children , 0, 10);
    
      foreach ($sliced as $subpage){
        $title=returnPageField($subpage,'title');
        $date=returnPageField($subpage,'pubDate');
        $url=returnPageField($subpage,'slug');
        echo '<li><a href="/'.$url.'.html">'.$title.'</a>'.$date.'</li>';
      }
    } 
    
    function date_compare($a, $b)
    {
        $t1 = strtotime($a['pubDate']);
        $t2 = strtotime($b['pubDate']);
        return $t1 - $t2;
    }