帝国CMS中自定义列表按时间调用信息
2025-10-24
在帝国 CMS 中,利用灵动标签结合时间参数,可以灵活地实现按不同时间维度调用信息,例如按信息的发布时间或更新时间进行排序与筛选。
一、按发布时间调用信息
newstime 是系统默认的、可编辑的信息发布时间字段,适用于绝大多数需要依据内容发布先后顺序进行调用的场景。
1. 调用最新发布的信息
要实现此功能,只需在灵动标签中按 newstime 字段进行降序排列,即可优先展示最新发布的内容。
<!-- 调用最新发布的10条信息 -->
[e:loop={"SELECT id,title,newstime,titleurl FROM phome_ecms_news
WHERE checked=1
ORDER BY newstime DESC -- 按发布时间倒序(最新的在前)
LIMIT 10",10,24,0}]
<li>
<a href="<?=$bqr['titleurl']?>"><?=esub($bqr['title'],30)?></a>
<span><?=date('Y-m-d',$bqr['newstime'])?></span>
</li>
[/e:loop]
2. 调用指定时间范围内的信息
例如调用近 7 天发布的信息:php
<?php
// 计算7天前的时间戳
$sevenDaysAgo = time() - 7 * 24 * 3600;
?>
[e:loop={"SELECT id,title,newstime,titleurl FROM phome_ecms_news
WHERE newstime > <?=$sevenDaysAgo?> -- 发布时间在7天内
AND checked=1
ORDER BY newstime DESC
LIMIT 8",8,24,0}]
<div class="news-item">
<h3><?=$bqr['title']?></h3>
<p>发布:<?=date('Y-m-d H:i',$bqr['newstime'])?></p>
</div>
[/e:loop]
二、按实际发布时间(truetime)调用
truetime 是系统记录的真实发布时间(不可手动修改),适合需要严格按实际发布时间筛选的场景。php
<!-- 按实际发布时间调用最新5条信息 -->
[e:loop={"SELECT id,title,truetime,titleurl FROM phome_ecms_news
WHERE checked=1
ORDER BY truetime DESC -- 按实际发布时间倒序
LIMIT 5",5,24,0}]
<p>
<a href="<?=$bqr['titleurl']?>"><?=$bqr['title']?></a>
<em><?=date('Y-m-d',$bqr['truetime'])?></em>
</p>
[/e:loop]
三、按最后修改时间(lastdotime)调用
lastdotime 记录内容最后一次修改的时间,适合展示 “最近更新” 的内容。php
<!-- 调用最近更新的6条信息 -->
[e:loop={"SELECT id,title,lastdotime,titleurl FROM phome_ecms_news
WHERE checked=1
AND lastdotime > 0 -- 排除未修改过的内容
ORDER BY lastdotime DESC -- 按最后修改时间倒序
LIMIT 6",6,24,0}]
<div class="update-item">
<a href="<?=$bqr['titleurl']?>"><?=$bqr['title']?></a>
<span>最近更新:<?=date('Y-m-d',$bqr['lastdotime'])?></span>
</div>
[/e:loop]
四、按月 / 年归档调用
按月份或年份分组调用历史内容,适合归档页面。1. 调用指定月份的信息(例如 2025 年 10 月)
<?php
// 2025年10月1日0点时间戳
$monthStart = strtotime('2024-06-01 00:00:00');
// 2025年10月30日23点59分时间戳
$monthEnd = strtotime('2025-10-30 23:59:59');
?>
[e:loop={"SELECT id,title,newstime,titleurl FROM phome_ecms_news
WHERE newstime BETWEEN <?=$monthStart?> AND <?=$monthEnd?>
AND checked=1
ORDER BY newstime DESC",0,24,0}]
<li><?=date('m-d',$bqr['newstime'])?>:<a href="<?=$bqr['titleurl']?>"><?=$bqr['title']?></a></li>
[/e:loop]
2. 动态获取当前月份的信息
<?php
// 当前月份第一天
$currentMonthStart = strtotime(date('Y-m-01 00:00:00'));
// 当前月份最后一天
$currentMonthEnd = strtotime(date('Y-m-t 23:59:59'));
?>
<div class="month-archive">
<h3><?=date('Y年m月')?> 归档</h3>
<ul>
[e:loop={"SELECT id,title,newstime,titleurl FROM phome_ecms_news
WHERE newstime BETWEEN <?=$currentMonthStart?> AND <?=$currentMonthEnd?>
AND checked=1
ORDER BY newstime DESC",0,24,0}]
<li>
<span><?=date('m-d',$bqr['newstime'])?></span>
<a href="<?=$bqr['titleurl']?>"><?=esub($bqr['title'],25)?></a>
</li>
[/e:loop]
</ul>
</div> 声明:模库网 (www.mokuw.com) 内容来自分享和网络收集,仅供学习与参考测试请备份。 转载请注明本文地址,如有侵权请联系我们!
本文标题:帝国CMS中自定义列表按时间调用信息


