PHP如果月等于然后Echo CSS样式

时间:2012-04-25 00:05:27

标签: php date loops

我通常会在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
?>
"

非常感谢任何帮助。谢谢。

EDIT 我目前在里面的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 ?>;">

4 个答案:

答案 0 :(得分:6)

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

<div class="month-<?php echo strtolower(date('M')) ?>">Howdy</div>

// your CSS file:
.month-jan { background: #000; }
.month-feb { background: #FFF; }
// etc

答案 1 :(得分:1)

尝试

<?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 ?>"

答案 2 :(得分:0)

switch (date('n')) {
    case 1:
        echo "000";
        break;
    case 2:
        echo "111";
        break;
    ...
}

或者,更简单:

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

答案 3 :(得分:0)

用php的日期函数取月份,减1,转换为hex,然后重复3次。

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

这有点棘手和迟钝,但你不需要switch或大量的elseif