[field:pubdate runphp='yes']
$ntime = time();
$oneday = 3600 * 24;
$oneday1 = 2 * 3600 * 24;
if(($ntime - @me) < $oneday)
{ @me = '今 日';}
elseif (($ntime - @me) < $oneday1)
{@me = '昨 日';}
else
{ @me = MyDate('Y.m:d',@me);}
[/field:pubdate]
### 代码解析 - **`[field:pubdate runphp='yes']`**:这是 Dedecms 的自定义字段标签,允许我们在模板中嵌入 PHP 代码。 - **`$ntime = time();`**:获取当前时间戳。 - **`$oneday = 3600 * 24;`**:定义一天的时间戳(以秒为单位)。 - **`if(($ntime - @me) < $oneday)`**:判断发布时间是否在 24 小时内。如果是,则显示“今日”。 - **`elseif (($ntime - @me) < $oneday1)`**:如果发布时间在 24 到 48 小时之间,则显示“昨日”。 - **`else`**:对于超过 48 小时的内容,显示具体的日期格式(如“2023.10:15”)。
### 实现效果 通过上述代码,您的网站可以自动根据文章的发布时间动态调整显示效果。例如: - 如果文章是当天发布的,会显示为今 日。 - 如果文章是前一天发布的,会显示为昨 日。 - 对于更早的文章,则会显示具体的日期。 这种动态的时间显示方式不仅提升了用户的阅读体验,还能让网站显得更加专业和人性化。
### 注意事项 1. **样式调整**:`` 和 `` 中的颜色可以通过 CSS 进一步自定义,确保与网站整体风格一致。 2. **性能优化**:虽然此方法简单有效,但如果数据量较大,建议对数据库进行索引优化,避免因频繁计算时间戳而影响性能。 3. **兼容性测试**:在不同浏览器中测试时间显示效果,确保一致性。 通过以上方法,您可以在 Dedecms 网站中轻松实现动态时间显示功能,为用户提供更好的浏览体验。希望这篇文章能帮助到您!