婷姐 发表于 2024-11-16 14:56:29

好久没提问了,今天来提问一下。看看有没有大神来帮助一下的。 New




看图。
这是一个diy的帖子模块,希望让今日发布的内容时间变成红色(图中红框),昨天发布的依然保持当前色。

如:11月16日新的内容日期颜色为红色。11月15日或者之前的日期颜色保持不变。

最终要求效果如下图



当然不希望用到插件。
我知道答案 回答被采纳将会获得1 贡献 已有11人回答

独家记忆 发表于 2024-11-16 14:57:12

补充一下当前模块的diy模块的代码
<div class="module cl xl xl1">    <ul>      

浅生 发表于 2024-11-16 14:57:44

直接发代码循环标签下的不显示了 我补一张图片

独家记忆 发表于 2024-11-16 14:57:54

首先要获取时间的变量才可以
假设 $slide['dateline'] 是 UNIX 时间戳
<ul class="cl">    <!--{loop $slides $slide}-->    <?php    $postDate = date('Y-m-d', $slide['dateline']);    $isToday = ($postDate === $currentDate);    ?>    <li>      <p style="color: <?php echo $isToday ? 'red' : 'black'; ?>;">            <?php echo $postDate; ?>      </p>    </li>    <!--{/loop}--></ul>

IT618发布 发表于 2024-11-16 14:58:53

最好是发完整的代码出来

拾光 发表于 2024-11-16 14:59:21

<div class="module cl xl xl1">
    <ul>
    循环
    <li><em>{dateline}</em><a href="{url}" title="{title}"{target}>{title}</a></li>
    循环
    </ul>
</div>

独家记忆 发表于 2024-11-16 15:00:16

<div class="module cl xl xl1">    <ul>      <li><em class="date">{dateline}</em><a href="{url}" title="{title}"{target}>{title}</a></li>    </ul></div><script>    document.addEventListener('DOMContentLoaded', function() {      const currentDate = new Date().toISOString().split('T');      document.querySelectorAll('.date').forEach(function(dateElement) {            const dateText = dateElement.textContent.trim();            if (dateText === currentDate) {                dateElement.style.color = 'red';            }      });    });</script>

浅生 发表于 2024-11-16 15:00:49

尝试了一下,目前没有效果。
在编辑中也修改了几次日期显示效果,都不行呢。

拾光 发表于 2024-11-16 15:01:44

DIY内不支持判断逻辑类的代码的,所以不能达到你的需求

IT618发布 发表于 2024-11-16 15:02:19

刚才尝试了一下吧script的判断写进了这套模板 当前模块的下方。然后把时间格式改成yyyy-mm-dd就可以正常显示效果了
页: [1]
查看完整版本: 好久没提问了,今天来提问一下。看看有没有大神来帮助一下的。 New

创宇盾启航版免费网站防御网站加速服务