0

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

4 回答 4

6

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

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

// your CSS file:
.month-jan { background: #000; }
.month-feb { background: #FFF; }
// etc
于 2012-04-25T00:10:11.290 回答
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 ?>"
于 2012-04-25T00:10:53.630 回答
0
switch (date('n')) {
    case 1:
        echo "000";
        break;
    case 2:
        echo "111";
        break;
    ...
}

或者,更简单:

$colors = array(
    1 => "000",
    2 => "111",
    ...
);
echo $colors[date('n')];
于 2012-04-25T00:09:00.133 回答
0

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

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

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

于 2012-04-25T00:14:41.193 回答