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