在帝国 CMS 中,truetime(实际发布时间)、lastdotime(最后修改时间)和newstime(可修改的发布时间)是三个与内容时间相关的重要字段,它们的含义和使用场景各有不同:

一、三个时间字段的区别

字段名 含义 特点 应用场景
newstime 可手动修改的发布时间 发布 / 编辑时可自定义,默认等于truetime 前台显示的 "发布时间",用于排序
truetime 实际发布时间(系统记录) 自动生成,不可手动修改,记录内容首次发布的真实时间 数据统计、内部记录
lastdotime 最后修改时间 内容被编辑并保存后自动更新 显示内容的最新更新时间

二、在模板中调用这三个时间字段

在内容页(show.html)或列表页中,可以通过以下方式调用这些时间字段:

1. 内容页调用示例

php
<div class="article-meta">
    <span>发布时间:<?=date('Y-m-d H:i:s', $navinfor['newstime'])?></span>
    <span>最后更新:<?=date('Y-m-d H:i:s', $navinfor['lastdotime'])?></span>
    <?php if($navinfor['newstime'] != $navinfor['truetime']): ?>
        <span>实际发布:<?=date('Y-m-d H:i:s', $navinfor['truetime'])?></span>
    <?php endif; ?>
</div>

2. 列表页(灵动标签)调用示例

php
[e:loop={"select id,title,newstime,truetime,lastdotime from phome_ecms_news where checked=1 order by newstime desc limit 10",10,24,0}]
    <li>
        <a href="<?=$bqr['titleurl']?>"><?=$bqr['title']?></a>
        <div class="time-info">
            发布:<?=date('Y-m-d', $bqr['newstime'])?>
            <?php if($bqr['lastdotime'] > $bqr['newstime']): ?>
                <span>更新:<?=date('Y-m-d', $bqr['lastdotime'])?></span>
            <?php endif; ?>
        </div>
    </li>
[/e:loop]

三、修改时间字段的方法

1. 手动修改newstime(发布时间)

  • 在发布 / 编辑内容时,直接在 "发布时间" 输入框修改(支持手动输入或选择时间)
  • 批量修改:后台 "数据更新"→"批量替换数据",选择对应模型和字段newstime进行批量修改

2. 强制修改truetimelastdotime(需数据库操作)

这两个字段通常不建议手动修改,若确有需要,可通过以下两种方式:
方法 1:后台 SQL 命令执行(推荐)
  1. 进入后台→"系统"→"SQL 命令工具"
  2. 执行更新语句(替换表名ID时间戳):
    sql
    -- 修改truetime(实际发布时间)
    UPDATE phome_ecms_news SET truetime=1620000000 WHERE id=123;
    
    -- 修改lastdotime(最后修改时间)
    UPDATE phome_ecms_news SET lastdotime=1620000000 WHERE id=123;
    

    (时间戳可通过在线工具转换)
方法 2:通过 PHP 代码修改
php
<?php
// 需在帝国CMS环境中执行(如自定义页面或插件)
require("e/class/connect.php");
require("e/class/db_sql.php");
$link=db_connect();
$empire=new mysqlquery();

$id=123; // 文章ID
$newTruetime=1620000000; // 新的实际发布时间戳

// 更新truetime
$empire->query("UPDATE phome_ecms_news SET truetime=$newTruetime WHERE id=$id");

db_close();
$empire=null;
?>