这可能是一个相对简单的PHP脚本,但在尝试了一段时间后我感到很茫然。
我有一系列表格(见下文),我想自动隐藏月份已经过去的表格。我正在考虑使用PHP生成嵌入式CSS来实现这一目标。我需要一个基本上这样做的脚本:
<?php $x=1;
do
{
echo "div.y!CURRENTYEAR!"
echo "$x;,"
$x=$x+1;
}
while ($x < CURRENTMONTH)
?>
我基本上希望脚本写出:
div.y2013 .jan,div.y2013 .feb,div.y2013 .mar
依此类推,直到它到达当前月份,这样我就可以隐藏它刚刚列出的所有表格。我不确定如何取一个数值并将该数字转换为这个purpsoe的三个字母的月份代码,或者使用各种日期格式代码可能更容易实现这一点。
我不能真正做的一件事是修改下面的标记。
<div class="y2013">
<table class="month jan">...data...</table>
<table class="month feb">...data...</table>
<table class="month mar">...data...</table>
...
<table class="month dec">...data...</table>
</div>
<div class="y2014">
<table class="month jan">...data...</table>
<table class="month feb">...data...</table>
<table class="month mar">...data...</table>
...
<table class="month dec">...data...</table>
</div>
修改
我尝试了以下但没有成功:
<?php
function int2month($int)
{
switch($int)
{
case 1: return "jan";
case 2: return "feb";
case 3: return "mar";
case 4: return "apr";
case 5: return "may";
case 6: return "jun";
case 7: return "jul";
case 8: return "aug";
case 9: return "sep";
case 10: return "oct";
case 11: return "nov";
case 12: return "nov";
default: return "dec";
}
}
$x=1;
do
{
echo "div.y<?php echo date('Y'); ?>
"
echo int2month($x).",";
$x=$x+1;
}
while ($x < date(n))
?>
编辑:有效的最终代码:
<?php
function int2month($int)
{
switch($int)
{
case 1: return "jan";
case 2: return "feb";
case 3: return "mar";
case 4: return "apr";
case 5: return "may";
case 6: return "jun";
case 7: return "jul";
case 8: return "aug";
case 9: return "sep";
case 10: return "oct";
case 11: return "nov";
case 12:
default: return "dec";
}
}
$i = 1;
while ($i < date('m')):
echo "div.y" . date('Y') . " .";
echo int2month($i) . ", ";
$i=$i+1;
endwhile;
echo ".place {display:none!important;}";
?>
答案 0 :(得分:2)
一个简单的功能怎么样?
<?php
function int2month($int)
{
switch($int)
{
case 1: return "jan";
//.......
case 11: return "nov";
case 12:
default: return "dec";
}
}
$x=1;
do
{
echo "div.y!CURRENTYEAR!"
echo int2month($x).",";
$x=$x+1;
}
while ($x < CURRENTMONTH)
?>
答案 1 :(得分:1)
我认为最好的办法是为过去几个月添加一个css类。 PHP。
这样您可以将display: none;
设置为该类。
生成的html应如下所示:
HTML:
<div class="y2013">
<table class="month jan passed">...data...</table>
<table class="month feb passed">...data...</table>
<table class="month mar passed">...data...</table>
...
<table class="month dec">...data...</table>
</div>
CSS:
.passed {display: none;}
修改强>
使用php生成选择器,你会得到这样的结果:
.y2012, .y2013 .jan, .y2013 .feb, .y2013 .mar, .... {dispaly: none;}