【问题标题】:PHP: Color text if returned date difference is longer than X yearsPHP:如果返回的日期差异长于 X 年,则为彩色文本
【发布时间】:2019-07-31 10:08:17
【问题描述】:

我正在尝试为我的论坛创建一个自定义成员标签,该标签将显示“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>

【问题讨论】:

  • 不清楚你的问题到底是什么,你能详细说明下你遇到的问题吗?
  • 对不起。我只是不确定如何根据 $experience 的输出执行 IF 语句来更改文本颜色。更具体地说,我想做一些类似“if $experience then set text color”的事情。
  • 为什么不使用 CSS 类来做到这一点?拥有member-for-X-years 类,其中X 是从PHP 动态输入的。然后让类设置颜色。
  • 您可以使用具有[ years_of_experience =&gt; css_class ] 之类结构的数组作为映射(或类似的东西),根据多年的经验为 html 元素分配适当的 css 类。
  • @Mahan_F 我曾想过使用 CSS,但输出始终是“X 年/月/日”。

标签: php datetime colors


【解决方案1】:

我只是想给你一个想法。

您应该在配置文件夹中创建 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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-06
    • 1970-01-01
    • 2021-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-24
    相关资源
    最近更新 更多