PHP:如何格式化日期时间使用的if / else对于CSS

user2567016:

标题可能没有多大意义; 我是一个PHP爱好者。

我试图创建我的论坛自定义成员标签,将显示“X十年的经验”,但用不同的颜色每一年的,如6个月以下红色,蓝色为每年一次,黄色两年来,等向前。

这是我目前使用的代码:

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

我能找到一个工作样本获取的时间差,它工作正常。现在,我只需要弄清楚如何把$体验变成了价值,我可以用CSS使用。

我还发现代码,允许你格式化一个变量为小时进行比较。这是代码:

<?php 
 $hour = $experience->format('H');
 if ($hour < 12) {
   echo "Morning";
 } else {
   echo "Afternoon or evening";
 }
?>

这不工作对我来说,因为我的输出总是X天X月,或X年。总是有关联的数字,但它可能是几天,几个月,几年。

我正在试图做的是一样的东西...

{{if $experience < 6 Months}}
Make Text Red
{{elseif $experience > 1 Year}}
Make Text Blue
{{elseif $experience > 2 Years}}
Make Text Yellow
...

我觉得自己像一个开关可能是更好的选择,但在这里再次,我并不真正知道如何确保$经验转化为日,月,年。

CountKyle:

如果$joinDate是没有一个日期,然后将其转换为一个:

$joinDatetime = DateTime::createFromFormat('m/d/Y', $joinDate);

做你的两个datetime对象DIFF:

$interval = $joinDatetime->diff($currentDate);

然后,你需要的不同转换成月:

$months = $interval->m + ($interval->y * 12);

将类分配给一个变量,在您的HTML呼应的是变量。例如:

$class = 'default';

if ($months < 6) {
    $class = 'red';
} elseif ($months > 12) {
    $class = 'blue'; 
} elseif ($months > 24) {
    $class = 'yellow';
}

然后在你的HTML,做这样的事情:

<li class="ipsResponsive_hidePhone memCustomFields {$class}">{$experience}{lang="memberexperience_experience"}</li>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

TOP 榜单

热门标签

归档