① Controller
首先按照由小到大或者由大到小的顺序获取数据表所有的时间戳字段 新建存放年份的数组
使用 date() 方法 获取时间戳的年份 使用 array_push() 将获取到的年份放入数组
返回的时候 使用 array_unique() 去重
function get_years_arr($map)
{
$lists = Db::name('article')
->where($map)->field('create_time')
->order('create_time desc')
->select();
$year_arr = [];
foreach ($lists as &$li) {
$years = date("Y", $li['create_time']);
array_push($year_arr, $years);
}
return array_unique($year_arr);
}
$yearList = $this->get_years_arr(['cate_id' => $subCur]);
$this->assign('yearList ', $yearList );
② html
前端可以使用异步或者同步 做按年份筛选功能
{volist name="yearList" id="vo"}
<li class="{if $Cur eq $vo}active{/if}" data-year="{$vo}" onclick="getNewsList(this)">
<a>{$vo}年</a>
</li>
{/volist}