-1

我需要创建档案列表(与 WP 网站中的功能非常相似),但使用 PHP 和 Yii 框架。由于我一直在思考如何才能做到这一点并且没有想出任何有用的东西,所以我在这里寻求您的帮助。例如,mysql 表看起来像这样: 列:id (int AI, primary) title (varchar) content (text) creation_date (timestamp)

如何使用时间戳列值,仅选择不同月份发布的帖子(以便我可以确定需要列出哪些月份作为指向相应存档页面的链接,该页面将列出该月下发布的所有帖子)?

顺便说一句,只帮助我如何使用 PHP 就足够了,您不必费力使代码与 Yii 一起工作,因为显然这是不可能的,因为您没有控制器、模型等: )

4

1 回答 1

0

Gj 对于否决我的问题的人,你真的很有帮助。我想即使在这类网站上也存在仇恨者,这很可悲。无论如何,关于它们已经足够了,这是我今天通过学习新的 MySQL 函数想出的东西,我以前不知道它存在 :) 你可以使用 MySQLDATE_FORMAT(date_column,'%format')来选择所需的月、年、日或任何其他“部分” " 的日期,即使日期是在 unix 时间戳中。这是我经过一番摆弄后想出的一个简单代码。

$query = "SELECT DISTINCT DATE_FORMAT(creation_date,'%M') as creation_month, DATE_FORMAT(creation_date,'%Y') as creation_year FROM posts";
$result = $connection->query($query);

if($result) {
    while($row = $result->fetch_assoc()) {
        $archiveArray[] = $row;
    } 
    print_r($archiveArray);

    echo '<h3>Our Archives by month</h3>';
    echo '<ul>';?>

    <?php foreach($archiveArray as $archiveRecord) : ?>
        <li>
            <a href=""><?php echo $archiveRecord['creation_month'] . ' ' . $archiveRecord['creation_year']; ?></a>      
        </li>
    <?php endforeach; 
    echo '</ul>';

}

这段代码的作用是从数据库中“读取”“creation_date”列中的时间戳,将其放入由 %M 和 %Y 指定的所需“格式”(类似于 PHP date() 函数格式)并分配动态虚构列名,称为 craetion_month 和 creation_year。请注意 DISTINCT 选择,因为我不希望月份为该特定月份的每个帖子重复自己。之后,我们只是将它们列为无序列表中的锚点。这是主要问题,其余的很容易做到:)

于 2013-07-20T15:47:18.840 回答