php mysql 怎么实现博客按月归档
楼上的是不是有些复杂?
我同意楼上第一个观点,文章表里需要有两个字段,create_month, create_month_time;
上面两个字段保存的格式为文章的创建月,create_month
格式:2016-10
,create_month_time
则存储月的时间戳
然后一个分组group by
和排序order by
搞定
可以把查询出来的数据,稍微组装一下,整理成如下的数组格式:
$article_list = array(
'2016-10' => array(
0 => array(
//文章信息
),
1 => array(
//文章信息
)
),
'2016-9' => array(
0 => array(
//文章信息
),
1 => array(
//文章信息
)
)
)
5 回答3.2k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
1 回答4k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
5 回答1.4k 阅读
1.首先需要的您的数据表结构支持,通常文章记录管理应该存在
create_time
,update_time
这样子的字段。2.有了这些字段之后我们就可以根据
create_time
来归类3.PHP中处理
timestamp
时间戳的函数有strtotime()
函数将任何英文文本的日期或时间描述解析为 Unix 时间戳(自 January 1 1970 00:00:00 GMT 起的秒数)。date()
格式化时间戳您可以使用
time()
// 表示当前的Unix时间戳<?php echo date('m', time()); ?>
//获取到当前的月份 输出为10
<?php echo date('Y-m-d', time()); ?>
//获取到当前的日期 输出为2016-10-08
您可以使用
$article_time = strtotime($create_time_timestamp)
获取到您的文章创建的time()
格式日期,然后使用
<?php $month = date('m', $article_time); ?>
获取创建的月份,进行归档输出即可!当然,如果您在文章存入数据库时已经做好了归档就更好!