PHP博客,需要制作一个好看的档案部分

2024-01-04

所以!基本上我有一个包含大量博客文章的数据库,这些都是按 UNIX 时间戳排序的,我需要的是一种使此代码在适当的时候吐出标头的方法,以便它输出如下所示的内容:

2008

November

标题 1 - 日期在这里
标题 2 - 日期在这里

December

标题 3 - 日期在这里

2009

January

标题 4 - 日期在这里

etcetera

到目前为止,这是我的代码,它一直有效,直到比较年份,我仍然需要想出一种好方法,让它以合理的方式比较月份,这样一月确实是在十二月之后,而不是一些可笑的第 13 个月。

[code]

<?php   
   if ($db = new PDO('sqlite:./db/blog.sqlite3')) {
         $stmt = $db->prepare("SELECT * FROM news ORDER BY date DESC");
         if ($stmt->execute()) {
               while ($row = $stmt->fetch(PDO::FETCH_NUM)) {
                     $current_year = date("Y", $row[1]);
                     $current_month = date("m", $row[1]);
                     if ($current_year > $last_year) {
                           echo "<h1>" . $current_year . "</h1>";
                           $last_year = $current_year;
                     }
                     echo "<tr>";
                     echo "<td align='left'><a href='view_post.php?post_id=". $row[1] ."'>" . $row['0'] . " - " . date("Y-m-d, H:i:s", $row[1]) . "</a></td>";
                     echo "</tr>";
               }
         }
   } else {
         die($sqliteerror);
   }
?>

[/code]


使用unix时间戳你可以做类似的事情(显然是伪代码)

prev_month = null
prev_year = null
foreach results as r
    new_month = date('F', r[timestamp]);
    new_year = date('Y', r[timestamp]);
    if(prev_month != new_month)
        //display month
    /if

    if(prev_year != new_year)
        //display year
    /if

    // display other info

    prev_month = new_month
    prev_year = new_year
/foreach
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP博客,需要制作一个好看的档案部分 的相关文章

随机推荐