2012-04-25 70 views
0

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

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

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

回答

6

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

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

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

大块的伟大工程!正是我所需要的,简单而简单。非常感谢。 – 2012-04-25 00:26:52

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

或者简单:

$colors = array(
    1 => "000", 
    2 => "111", 
    ... 
); 
echo $colors[date('n')]; 
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 ?>" 
+0

你的例子很棒,使用一个开关。我有一个PHP while循环,我的背景颜色总是返回到默认值,而不是正确的十六进制代码。我要添加一些代码来向上面的问题展示给你看。 – 2012-04-25 00:17:23

+0

看到......你是说你还需要帮助?我可以看到你已经接受了答案吗? – Baba 2012-04-25 00:30:09

+0

我已设置。我决定上面的解决方案会更适合我的需求。谢谢。 – 2012-04-25 01:15:54

0

取月份与PHP的日期功能,减一,转换为十六进制,并重复它3次。

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

这是一个有点棘手和钝,但你需要避免一个switchelseif小号