首页 > 解决方案 > PHP:如果返回的日期差异长于 X 年,则为彩色文本

问题描述

我正在尝试为我的论坛创建一个自定义成员标签,该标签将显示“X 年的经验”,但每一年都有不同的颜色,例如第一年为红色,第二年为蓝色,等等。

获取日期差异很简单,但我很难理解下一点。

这是我目前拥有的代码:

{{$joinDate = $comment->author()->get_joined(); $currentDate = new \DateTime(); $interval = $joinDate->diff($currentDate); $experience = \IPS\DateTime::formatInterval($interval, 1);}}
<li class="ipsType_light">{$experience} {lang="memberexperience_experience"}</li>

标签: phpdatetimecolors

解决方案


我只是想给你一个想法。

您应该在配置文件夹中创建 styles.php 文件。并将以下代码添加到此文件中。

return [
  'experience' => [
    1 => 'danger',
    2 => 'secondary',
    3 => 'primary'
 ]
];

然后在你的刀片文件中写下这段代码

<li class="text-{{config("styles.experience.$experience")}}">{{$experience}} {{lang="memberexperience_experience"}}</li>

如果经验可能少于 1 年,请使用以下代码

@if($experience < 1)
    <li class="text-danger">{{$experience}}</li>
@else
    <li class="text-{{config("styles.experience.$experience")}}"> 
       {{$experience}}{{lang="memberexperience_experience"}}</li>
@endif

希望这会给你一个想法并帮助你。


推荐阅读