使用date()函数或sys_ReturnDateYMD()等内置函数可将帝国CMS的时间戳转换为“2025-04-05”或“2025年04月05日 15:30”等可读格式,适用于模板变量、列表页及灵动标签中。

在使用帝国CMS制作网站模板时,经常需要对数据库中的日期时间字段进行格式化显示。系统默认存储的时间是时间戳形式,直接调用会显示为一串数字,因此必须通过格式化函数将其转换为可读性更强的日期时间格式。
使用date()函数格式化时间
帝国CMS模板中支持PHP的date()函数来处理时间戳。模板变量如[!--newstime--]等输出的是时间戳,可在模板中结合date()进行格式化。
示例:
-
显示“2025-04-05”:
=date('Y-m-d', $navinfor[newstime])?> -
显示“2025年04月05日 15:30”:
=date('Y年m月d日 H:i', $navinfor[newstime])?> -
在列表页或灵动标签中使用:
[e:indexloop={"select * from [!db.pre!]ecms_news order by newstime desc limit 10",10,24}]=date('Y-m-d', $bqr[newstime])?>[/e:indexloop]
使用sys_ReturnDateYMD()等内置函数
帝国CMS也提供了内置的时间格式化函数,适用于更简洁的模板写法。
- sys_ReturnDateYMD():仅返回年月日,例如“2025-04-05”
- sys_ReturnDateYM():返回年月,如“2025-04”
- sys_ReturnDateMD():返回月日,如“04-05”
这些函数可用于内容模板或列表模板中,调用方式如下:
=sys_ReturnDateYMD($navinor[newstime])?>在灵动标签中灵活控制时间格式
灵动标签(e:loop)是常用的数据调用方式,其中时间字段需手动格式化。
示例代码:
\[e:loop={0,10,3,0}\]\[/e:loop\]
这样可以在首页或列表页统一控制文章发布时间的显示样式。
注意事项与常见问题
确保传入的是有效时间戳,若字段为空或非时间戳格式可能导致显示异常。
- 检查字段是否为时间戳类型(如newstime、truetime等)
- 在内容模板中使用$navinfor变量,在列表或灵动标签中使用$bqr变量
- 避免在静态页面生成时出现PHP执行错误,确认模板支持PHP代码解析
基本上就这些。掌握date()函数和帝国自带的时间处理方法,就能灵活控制模板中日期时间的显示样式,提升用户体验。不复杂但容易忽略细节。










