PHP中获取栏目创建时间需查询数据库对应字段,如created_at、addtime等,而非调用date()等函数;字段类型为DATETIME时用strtotime()转换,为INT时间戳时直接格式化输出。

PHP中获取栏目创建时间,本质是读数据库字段
PHP本身没有“栏目创建时间”这个内置概念,它取决于你用的CMS或自建系统如何设计数据表。绝大多数情况下,栏目(分类、频道、栏目表)的创建时间会存为一个 created_at 或 addtime 字段,类型通常是 DATETIME 或 INT(时间戳)。直接调用PHP函数如 date() 或 time() 是拿不到的——必须查库。
常见CMS里对应字段和查询方式
不同系统字段名差异大,硬套会查不到数据:
- WordPress:栏目(term)不直接存创建时间,需通过
wp_term_taxonomy关联或扩展字段(如用wp_options存元数据),默认无created_time - dedecms(织梦):栏目表为
dede_arctype,常用字段是senddate(发布时间)或自定义添加的addtime - thinkphp + 自建模型:通常约定用
create_time,类型为datetime或int - 如果字段是时间戳(INT),PHP中用
date('Y-m-d H:i:s', $row['addtime'])格式化;如果是 DATETIME 类型,可直接输出或用strtotime()转为时间戳处理
查不到数据?先确认这三件事
很多“取不到时间”问题其实和PHP无关,而是底层逻辑没理清:
- 检查数据库表结构:运行
DESCRIBE `your_category_table`,确认是否存在类似created_at、addtime、pubdate的字段 - 确认该字段有值:有些系统插入栏目时没写入时间字段(比如留空或为0),查出来就是
0000-00-00 00:00:00或0 - 注意权限与SQL条件:比如后台栏目可能被软删除(
status != 0)、或只查了缓存未查库,导致时间字段为空
简单示例:PDO查 thinkphp 风格的栏目表
假设栏目表叫 category,含 id 和 create_time(DATETIME 类型):
立即学习“PHP免费学习笔记(深入)”;
$pdo = new PDO($dsn, $user, $pass);
$stmt = $pdo->prepare("SELECT id, name, create_time FROM category WHERE id = ?");
$stmt->execute([123]);
$row = $stmt->fetch(PDO::FETCH_ASSOC);
if ($row && !empty($row['create_time'])) {
echo date('Y年m月d日', strtotime($row['create_time'])); // 输出:2023年05月18日
}
如果 create_time 是整型时间戳,就不用 strtotime(),直接 date('Y-m-d', $row['create_time']) 即可。
字段名不统一、建表不规范、历史数据缺失——这些才是实际开发中最常卡住的地方,比语法本身更值得花时间核对。











