phpcms标签调用时间格式转换-1

在使用 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 格式化和时间戳处理,就能灵活应对各种前端展示需求。注意模板中尽量避免复杂逻辑,复杂的格式建议在程序层处理好再传给模板。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。