
在使用 PHPCMS 时,经常会通过标签调用文章或内容的发布时间,但默认的时间格式可能不符合前端展示需求。这时就需要对时间格式进行转换。PHPCMS 使用的是 PHP 的时间处理方式,支持灵活的时间格式化操作。
时间字段的默认输出
在模板中通过标签调用时间,例如:
zuojiankuohaophpcn!–{loop $data $val}–> {$val[‘inputtime’]}<!–{/loop}–>
此时 inputtime 默认输出的是 Y-m-d H:i:s 格式,比如:2024-03-15 10:30:25。
使用 date 函数格式化时间
PHPCMS 模板支持在变量后使用 |date: 来调用 PHP 的 date 函数进行格式转换。基本语法如下:
立即学习“PHP免费学习笔记(深入)”;
{$val[‘inputtime’]|date:’Y-m-d’}
常用格式说明:
Y-m-d → 2024-03-15Y年m月d日 → 2024年03月15日m/d/Y → 03/15/2024H:i → 10:30(仅显示时分)Y-m-d H:i → 2024-03-15 10:30
处理 Unix 时间戳
PHPCMS 存储的时间字段通常是 Unix 时间戳(整数),所以在格式化前要确保传入的是时间戳。如果直接输出 inputtime,它已经是时间戳,可直接用于 date 处理。
例如:
发布时间:{$val[‘inputtime’]|date:”Y-m-d”}
如果遇到字符串时间,需先用 strtotime 转换(一般在 PHP 程序中处理,模板中不建议复杂逻辑)。
自定义时间显示(如“几秒前”)
若想实现“刚刚”、“3分钟前”、“昨天”这类人性化显示,PHPCMS 模板本身不直接支持,需在数据获取阶段处理。可以在模型或列表函数中添加格式化方法,或使用自定义函数。
示例:在 PHP 中写一个友好时间函数:
function friendly_date($time) { $diff = time() – $time; if ($diff < 60) return ‘刚刚’; if ($diff < 3600) return floor($diff / 60).’分钟前’; if ($diff < 86400) return floor($diff / 3600).’小时前’; return date(‘Y-m-d’, $time);}
然后将该函数注册到模板可用函数中,再在模板调用:
{$val[‘inputtime’]|friendly_date}
基本上就这些常见的时间格式转换方式。掌握 date 格式化和时间戳处理,就能灵活应对各种前端展示需求。注意模板中尽量避免复杂逻辑,复杂的格式建议在程序层处理好再传给模板。

评论(0)