PHP 如果 Month 等于,则 Echo CSS 样式


PHP if Month Equals then Echo CSS Style

我通常会在jQuery中做这种事情,但这需要服务器端的触摸。 我是PHP的新手,需要帮助编写一个基本脚本,该脚本将采用一个数字月份the_time('m'),我只想说如果它等于01,那么echo "#000"然后循环其他月份02,03,04,依此类推,如果月份相等,则让它们回显不同的十六进制代码。

请原谅我粗糙和不正确的代码,但我认为这将有助于可视化我正在努力的解决方案。

style="background: #
<?php 
if(the_time('m') == "01") { 
    echo "000";
} else if (the_time('m') == "02"){
    echo "111";
} // so on through 12
?>
"

任何帮助将不胜感激。 谢谢。

编辑我目前在里面的 while 循环代码:

<?php while ( have_posts() ) : the_post(); ?>
<?php
$code = "f5f5f5"; // Set default
$month = the_time('m');
switch ($month) {
        case "01" :
    $code = "f5f5f5";
            break;
    case "02" :
    $code = "f3f3f3";
    break;
    case "03" :
    $code = "f1f1f1";
    break;
    case "04" :
    $code = "efefef";
    break;
    }
?>
<li id="event_<?php the_time('m_d_Y') ?>" style="background: #<?php echo $code ?>;">

我真的不会走这条路,但我会做这样的事情:

<div class="month-<?php echo strtolower(date('M')) ?>">Howdy</div>
// your CSS file:
.month-jan { background: #000; }
.month-feb { background: #FFF; }
// etc

尝试

<?php
$code = "000"; // Set default
$month = date ( "m" );
switch ($month) {
    case "02" :
        $code = "111";
        break;
    case "03" :
        $code = "CCC";
        break;
    case "04" :
        $code = "FFF";
        break;
}
?>
style="background: #<?php echo $code ?>"
switch (date('n')) {
    case 1:
        echo "000";
        break;
    case 2:
        echo "111";
        break;
    ...
}

或者,更简单:

$colors = array(
    1 => "000",
    2 => "111",
    ...
);
echo $colors[date('n')];

用 php 的日期函数取月份,减去 1,转换为十六进制,然后重复 3 次。

echo printf('%1$'.base_convert(date('n') - 1, 10, 16).'3d', date('n') - 1);

这有点棘手和迟钝,但你避免了需要switch或一大块elseif