直接在模板文件中使用 PHP 代码 (简单直接)
这种方法最简单,适合新手或者临时使用,直接在你需要显示天数的位置插入 PHP 代码即可。

(图片来源网络,侵删)
操作步骤:
- 登录你的 DedeCMS 后台。
- 找到并打开模板文件,这个文件通常是你的首页模板,路径在
templets/default/index.htm(如果你使用的是默认模板),或者是你其他需要显示天数的页面模板。 - 插入代码,在模板文件中,你希望显示天数的位置,添加以下 PHP 代码:
<?php
$day_start = strtotime("2025-01-01"); // 请将这里改成你的网站上线日期
$day_end = time(); // 获取当前时间戳
$days = ceil(($day_end - $day_start) / 3600 / 24); // 计算天数差并向上取整
echo "本站已安全运行 <strong>{$days}</strong> 天";
?>
代码解释:
strtotime("2025-01-01"):将你的网站上线日期(请务必修改成你自己的日期)转换成 Unix 时间戳。time():获取当前时间的 Unix 时间戳。($day_end - $day_start):计算两个时间戳之间的秒数差。/ 3600 / 24:将秒数差换算成天数。ceil():向上取整函数,因为即使只运行了1天多1秒,也应该算作第2天,所以使用ceil比floor更合适。echo ...:输出最终结果,并用<strong>标签将数字加粗,使其更醒目。
- 更新缓存,在后台模板管理中,找到你修改的模板文件,点击“更新缓存”或“生成HTML”。
优点:
- 简单快速,无需修改核心文件。
- 一看就懂,适合临时修改。
缺点:
- 不符合 DedeCMS 的标签化规范。
- 如果模板被覆盖(例如升级模板),代码会丢失,需要重新添加。
使用自定义函数 (推荐,更规范)
这是更专业、更推荐的方法,通过创建一个自定义函数,然后在模板中调用它,代码更整洁,也更容易复用。
操作步骤:
第1步:创建自定义函数文件
- 在你的 DedeCMS 安装目录下,找到
include/extend.func.php文件,如果这个文件不存在,请手动创建一个。 - 用代码编辑器(如 Notepad++、VS Code)打开
extend.func.php文件。 - 在文件末尾,添加以下自定义函数代码:
/**
* 计算网站运行天数
* @param string $start_date 网站开始日期,格式如 'Y-m-d','2025-01-01'
* @return int 运行天数
*/
function getSiteRunDays($start_date = '2025-01-01')
{
// 请将这里改成你的网站上线日期,或者通过参数传入
$start_time = strtotime($start_date);
$end_time = time();
$days = ceil(($end_time - $start_time) / 3600 / 24);
return $days;
}
代码解释:
- 这个函数
getSiteRunDays接受一个日期字符串作为参数。 - 函数内部计算天数,并返回计算结果。
- 你可以直接在函数里写死你的网站日期,也可以像上面这样通过参数传入,灵活性更高。
第2步:在模板中调用函数
- 同样,打开你想要显示天数的模板文件(如
index.htm)。 - 在需要显示的位置,使用 DedeCMS 的 标签语法来调用这个函数:
本站已安全运行 <strong>{dede:field name='function' function='getSiteRunDays("2025-01-01")'/}</strong> 天
或者,如果你的函数已经设置了默认日期,可以更简单:
本站已安全运行 <strong>{dede:field name='function' function='getSiteRunDays()'/}</strong> 天
代码解释:
{dede:field name='function' function='你的函数名(参数)' /}是 DedeCMS 调用自定义函数的标准方法。- 我们将
getSiteRunDays("2025-01-01")放在function属性里。 - 同样,请务必将
"2025-01-01"修改成你自己的网站上线日期。
- 更新缓存,在后台模板管理中,更新你修改的模板文件的缓存。
优点:
- 代码复用:你可以在网站的任何模板文件中轻松调用这个函数。
- 易于维护:所有逻辑都集中在
extend.func.php文件中,修改时只需改一处。 - 符合规范:是 DedeCMS 推荐的开发方式,结构清晰。
- 不易丢失:模板升级通常不会覆盖
include目录下的文件。
总结与建议
| 特性 | 方法一 (直接PHP) | 方法二 (自定义函数) |
|---|---|---|
| 易用性 | 非常简单,适合新手 | 需要了解函数和标签,稍复杂 |
| 规范性 | 不规范,不符合标签化思想 | 非常规范,符合 MVC 思想 |
| 可维护性 | 差,模板更新后代码会丢失 | 优秀,逻辑集中,易于修改 |
| 可复用性 | 差,只能在单个文件使用 | 优秀,全站模板均可调用 |
强烈建议您使用方法二(自定义函数),虽然第一步需要多创建一个文件,但从长远来看,它能让你的网站代码更健壮、更易于管理,是专业开发者的首选,对于一次性的个人博客,方法一也可以快速解决问题。
