织梦首页调用时间,最常用的是在模板里嵌一段PHP日期函数,让服务器输出当前时间。织梦DedeCMS 5.7的首页模板一般在/templets/当前模板目录/index.htm,打开这个文件,在需要显示时间的位置写入:
{dede:php}
date_default_timezone_set(''Asia/Shanghai'');
echo date(''Y年m月d日 H:i:s'');
{/dede:php}
保存后到后台“生成”里更新首页,前台就会显示类似“2025年3月18日 14:26:35”的时间。只想要日期,把date里的格式改成''Y-m-d'';想带星期,可以写成:
{dede:php}
date_default_timezone_set(''Asia/Shanghai'');
$week=array(''日'',''一'',''二'',''三'',''四'',''五'',''六'');
echo date(''Y年m月d日'').'' 星期''.$week[date(''w'')];
{/dede:php}
这段代码里的date_default_timezone_set不是可有可无的。织梦有些老版本默认时区没设好,直接输出会差8小时,我见过不少站点首页时间对不上,问题就出在这里。加上这行,或者到后台系统基本参数里把默认时区设成Asia/Shanghai,基本就能解决。

不过要注意,{dede:php}标签不是默认就能用的。得先进后台“系统”里的“系统基本参数”,找到“核心设置”中的“模板引擎允许PHP语法”,把它选成“是”。没开这个选项,模板里的PHP代码会被直接输出成文字,前台看到的就是一段代码而不是时间。这个开关很多新手会漏掉,改完模板发现没效果,先检查这里。
还有一个容易忽略的点:织梦首页默认生成静态index.html。PHP代码是在生成静态页那一刻执行的,生成完之后时间就固定了,不会自己走。比如上午10点生成首页,下午再访问还是显示上午10点。想让首页时间实时跳动,得用JavaScript在浏览器端取时间。可以在模板里放一个空span,再用JS定时刷新:
这段JS不依赖服务器时区,显示的是访客电脑时间,适合用在首页顶部做动态时钟。缺点是以访客本地时间为准,如果站点面向全国用户,问题不大;如果要求统一显示服务器时间,还是用PHP生成静态时间更稳。
首页除了调用当前时间,还经常要调用文章发布时间。这个不用自己写PHP,织梦的arclist标签就能办。比如首页最新文章列表里显示发布时间:
{dede:arclist row=''10'' orderby=''pubdate''}
[field:pubdate function="MyDate(''Y-m-d H:i'',@me)"/]
{/dede:arclist}
这里的MyDate是织梦内置的时间格式化函数,@me代表当前文章的时间戳。想只显示日期,把格式换成''Y-m-d'';想显示“几小时前”,可以用function="GetDateMk(@me)"。这个和首页当前时间是两回事,一个是站点运行时间,一个是内容发布时间,别混在一起用。
实际改模板时,建议先备份index.htm,再动代码。改完后台更新首页,清一下浏览器缓存再看。如果首页是动态访问的,PHP时间会每次刷新都变;如果是静态生成,就记住时间固定这个特性。需要实时时间就用JS,需要统一服务器时间就用PHP,需要文章时间就用arclist标签。三种场景分清楚,首页时间调用基本不会出问题。