当前位置:首页>行业动态> 正文

如何在DedeCMS中自定义日期时间显示格式?

dedecms 日期时间格式大全包括多种日期和时间的显示格式,如年月日、小时:分钟等。

管理系统(DEDECMS)中,日期和时间的格式化是一个重要且常见的功能,尤其是在展示文章发布时间、更新时间等方面,以下是一些常见的日期时间格式及其对应的标签示例:

常用日期时间格式

格式代码描述示例输出
[field:pubdate function='strftime("%m%d",@me)'/]月日1227
[field:pubdate function='strftime("%b %d, %Y",@me)'/]月份简写 日期, 年份May 15, 2009
[field:pubdate function="GetDateTimeMK(@me)"/]年月日 时:分:秒20120820 18:30:02
{dede:field name='pubdate' function='GetDateMk(@me)'/}年月日20120820
[field:pubdate runphp='yes'] $a=""; $b=""; $c=strftime("%Y年%m月%d日 %H:%M:%S","@me"); $ntime = time(); $oneday = 3600 * 24; if(($ntime @me)最近24小时内的时间显示红色,否则正常显示如果当前时间距离发布时间小于24小时,则显示为红色时间,如“2023年10月19日 10:00:00”,否则正常显示
{dede:tagname runphp='yes'}@me = date("Ymd H:i:s", time());{/dede:tagname}获取当前系统时间并格式化20231019 10:00:00
[field:pubdate runphp='yes'] $today = Floor(time()/(3600 * 24)); $senday= Floor(@me/(3600 * 24)); $updays = $today$senday; if($updays==0) @me = "; else @me = $updays."天前"; [/field:pubdate]计算与今天的时间差并显示为“或“X天前”如果发布时间是今天,则显示为“,否则显示为“X天前”,如“5天前”

利用strftime()函数格式化时间

格式代码描述
%a星期几的简写(如Mon)
%A星期几的全称(如Monday)
%b月份的简写(如Jan)
%B月份的全称(如January)
%c标准的日期的时间串(如Tue Aug 15 12:08:56 2001)
%C年份的后两位数字(如01)
%d十进制表示的每月的第几天(如0131)
%D月/天/年(如08/15/01)
%e在两字符域中,十进制表示的每月的第几天
%F年月日(如20010815)
%g年份的后两位数字,使用基于周的年
%G年分,使用基于周的年
%h简写的月份名(如Jan)
%H24小时制的小时(0023)
%I12小时制的小时(0112)
%j十进制表示的每年的第几天(如001366)
%m十进制表示的月份(0112)
%M十进制表示的分钟数(0059)
%n新行符
%p本地的AM或PM的等价显示
%r12小时的时间(如10:30:29 PM)
%R显示小时和分钟:hh:mm
%S十进制的秒数(0059)
%t水平制表符
%T显示时分秒:hh:mm:ss
%u每周的第几天,星期一为第一天(值从0到6,星期一为0)
%U第年的第几周,把星期日做为第一天(值从0到53)
%V每年的第几周,使用基于周的年
%w十进制表示的星期几(值从0到6,星期天为0)
%W每年的第几周,把星期一做为第一天(值从0到53)
%x标准的日期串(如%m/%d/%y)
%X标准的时间串(如%H:%M:%S)
%y不带世纪的十进制年份(值从0到99)
%Y带世纪部分的十制年份
%z时区名称,如果不能得到时区名称则返回空字符

FAQs

Q1: DEDECMS中如何调用自定义格式的日期时间?

A1: 在DEDECMS中,可以通过strftime()函数来自定义日期时间的格式,如果你想要显示“年月日 时:分:秒”的格式,可以使用以下代码:

[field:pubdate function='strftime("%Y年%m月%d日 %H:%M:%S",@me)'/]

这将输出类似于“2023年10月19日 10:00:00”的格式。

Q2: 如何在DEDECMS中显示相对时间,如“X天前”?

A2: 你可以使用以下的PHP代码来实现这个功能:

[field:pubdate runphp='yes']
$today = Floor(time()/(3600 * 24));
$senday = Floor(@me/(3600 * 24));
$updays = $today$senday;
if($updays==0) @me = "quot;;
else @me = $updays."天前";
[/field:pubdate]

这段代码会计算出当前时间与发布时间的差值,并根据差值显示“或“X天前”。