时间:2021-07-01 10:21:17 帮助过:15人阅读
数据库里面时间字段存的是int型时间戳,想做出下面这个效果,没什么经验,希望大家能给个思路,谢谢!
数据库里面时间字段存的是int型时间戳,想做出下面这个效果,没什么经验,希望大家能给个思路,谢谢!
sql = 'SELECT * FROM `table` ORDER BY created DESC';
//你的数据库驱动逻辑
//数据处理
if ($articles) {
$res = [];
foreach ($articles as $article) {
$year = date('Y', $article['created']);
$res[$year][] = $article; //以年为单位,作为数组索引,
}
}
//最后
输出结果类似这样
$res => [
[2014] => [
[0] => [
//article 1
],
[1] => [
//article 2
]
],
[2015] => [
[0] => [
//article 1
],
[1] => [
//article 2
]
]
]
order by 时间字段名 DESC //时间从大到小
order by 时间字段名 ASC //时间从小到大
你调用sql语句的时候order by field_time desc不就完了。
认为应该可以参考类似分页的解决方案
就是时间类型的转换嘛,用strtotime
$dated是你取出的时间戳
date("Y",strtotime($dated)); //年
date("m/d",strtotime($dated)); // 月/日