管理系统(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) |
%H |
24小时制的小时(0023) |
%I |
12小时制的小时(0112) |
%j |
十进制表示的每年的第几天(如001366) |
%m |
十进制表示的月份(0112) |
%M |
十进制表示的分钟数(0059) |
%n |
新行符 |
%p |
本地的AM或PM的等价显示 |
%r |
12小时的时间(如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天前”。