私の質問に反対票を投じた人への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>';
}
このコードが行うことは、DB から「creation_date」列のタイムスタンプを「読み取り」、%M および %Y (PHP の date() 関数の書式設定と同様) で指定され、割り当てられた目的の「書式」内に配置することです。その場で、craetion_month および creation_year と呼ばれる架空の列名に変換します。DISTINCT の選択に注意してください。特定の月の各投稿で月を繰り返さないためです。その後、順序付けされていないリストにアンカーとしてリストします。これが主な問題でした。残りは簡単です:)