これはおそらく比較的単純な 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
など、現在の月に達するまで、リストしたばかりのすべてのテーブルを非表示にできるようにします。数値を取得して、その数値をこのパープソーの 3 文字の月コードに変換する方法がわかりません。または、さまざまな日付形式コードを使用してこれを行うより簡単な方法があるかもしれません。
私が本当にできないことの 1 つは、以下のマークアップを変更することです。
<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;}";
?>