2012-04-25 3 views
0

Я обычно делал бы это в jQuery, но для этого потребуется прикосновение на стороне сервера. Я новичок в PHP и нуждаюсь в помощи, написав базовый сценарий, который займет числовый месяц the_time('m'), и я просто хочу сказать, если он равен 01, затем echo "#000", а затем прокручивается через другие месяцы 02, 03, 04 и так далее. echo разные шестнадцатеричные коды, если месяц равен.PHP if Month Equals then 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 
?> 
" 

Любая помощь была бы принята с благодарностью. Спасибо.

EDIT код во время цикла я в настоящее время внутри:

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

Работает отлично! То, что мне было нужно, просто и просто. Огромное спасибо. –

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, и мой фоновый цвет всегда возвращается к стандарту по умолчанию, а не к шестнадцатеричному коде месяца. Я собираюсь добавить код на вопрос выше, чтобы показать вам. –

+0

видели ... вы говорите, что вам все еще нужна помощь ??? Я вижу, вы уже приняли ответ? – Baba

+0

Я установлен. Я решил, что решение выше будет более подходящим для моих нужд. Спасибо. –

0

Возьмите месяц с функцией даты РНР, вычесть один, конвертировать в шестнадцатеричном, и повторить его 3 раза.

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

Это немного сложнее и тупые, но избежать нуждающихся в switch или огромный кусок elseif s