[PHP-users 6002] はじめまして。PHP初心者です。
小峰 誠
php-users@php.gr.jp
Fri, 8 Mar 2002 16:08:11 +0900
This is a multi-part message in MIME format.
------=_NextPart_000_0038_01C1C6BB.72269640
Content-Type: text/plain;
charset="iso-2022-jp"
Content-Transfer-Encoding: 7bit
はじめまして。PHP初心者の誠です。
現在、カレンダーを作成していますが、
当月(今なら3月)を表すことはすぐにできたのですが、
前の月や次の月を表す場合に、PHPを使用して表したいのですが、
上手くいきません。
ソースは
<html>
<body bgcolor="lime">
<center>
<!--
カレンダー表示php
-->
<?php
/* 今の日時を取得*/
$now_month = getdate(time()); /*各項目(年・月・日)を配列で受け取る。*/
$tmp = getdate(mktime(0,0,0,$now_month[mon],1)); /* 今月の初めの日時を取得
*/
$first_mday = $tmp[wday]; /*今月一日の曜日*/
$now_day = 1; /*現在作画している日*/
echo( "<table border=\"2\" width=\"600\" height=\"400\">"); /* テーブルの作
成 */
echo( "<tr>");
echo( "<th colspan =\"7\">$now_month[year]年 $now_month[mon]月</th></tr>");
echo( "</tr>");
echo( "<tr>");
echo( "<TD bgcolor = #ffffff align = center><B>日</B></TD>");
echo( "<TD bgcolor = #ffffff align = center><B>月</B></TD>");
echo( "<TD bgcolor = #ffffff align = center><B>火</B></TD>");
echo( "<TD bgcolor = #ffffff align = center><B>水</B></TD>");
echo( "<TD bgcolor = #ffffff align = center><B>木</B></TD>");
echo( "<TD bgcolor = #ffffff align = center><B>金</B></TD>");
echo( "<TD bgcolor = #ffffff align = center><B>土</B></TD>");
echo( "</tr>");
echo( "<tr>");
/* 日にちの作画スタート */
for($i = 0; $i < $first_mday; $i++){ /* 一日の曜日まで作画位置をずらす */
echo( "<td></td>");
}
while(checkdate($now_month[mon],$now_day,$now_month[year])){
if($now_day == $now_month[mday]){ /*今日は黄色で作画する。*/
echo( "<td bgcolor = #ffff00 align = right><font size=\"4\" color =
#00ff00><a href='form.php'>$now_day</a></font></td>");
}elseif($first_mday == 0){ /* 日曜日の場合は赤で作画する*/
echo( "<td bgcolor =\"red\" align = right><font size=\"4\" color
=#0000ff><a href='form.php'>$now_day</a></font></td>");
}elseif($first_mday == 6){ /*土曜日は青で作画する。*/
echo( "<td bgcolor =\"blue\" align = right><font size=\"4\" color =
#0000ff><a href='form.php'>$now_day</a></font></td>");
}else{ /* その他は黒 */
echo( "<td bgcolor = #ffffff align = right><font size=\"4\"><a
href='form.php'>$now_day</a></td>");
}
$now_day++;
$first_mday++;
if(($first_mday % 7)==0){ /* 現在、土曜日なので改行 */
$first_mday = 0;
echo( "</tr>");
echo( "<tr>");
}
}
/* 日にちの作画の終了 */
while($first_mday == 6){ /* カレンダーが埋まるまで位置をずらす */
echo( "<td></td>");
$first_mday++;
}
echo( "</tr>");
/* テーブルの作画の終了 */
/*前月・次月を作画*/
echo( "<BR><table border=1 width=600>" );
echo( "<tr>" );
echo( "<TD align=\"left\"><A href=\"$PHP_SELF\" name=\"presub\">" );
echo( "前 月" );
echo( "</A>" );
echo( "</TD>" );
echo( "<TD align=\"right\"><A href=\"$PHP_SELF\" name=\"nxtsub\">" );
echo( "次 月" );
echo( "</A>" );
echo( "</TD>" );
echo( "</tr>" );
echo( "</TABLE>");
/* 前月・次月の作画の終了 */
?>
</center>
</body>
</html>
です。これで当月のカレンダーは作成できますが、次月・前月の表示が・・・。
おそらく<A href=\"*****\">の箇所に間違いがあるのではないかと思い
修正or作成をしているのですが、上手くいきません。
どなたかよろしくお願いします。
------=_NextPart_000_0038_01C1C6BB.72269640
Content-Type: text/html;
charset="iso-2022-jp"
Content-Transfer-Encoding: quoted-printable
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-2022-jp">
<META content=3D"MSHTML 6.00.2713.1100" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV>=1B$B$O$8$a$^$7$F!#=1B(BPHP=1B$B=3Di?4<T$N@?$G$9!#=1B(B</DIV>
<DIV>=1B$B8=3D:_!"%+%l%s%@!<$r:n@.$7$F$$$^$9$,!"=1B(B</DIV>
<DIV>=1B$BEv7n!J:#$J$i=1B(B3=1B$B7n!K$rI=3D$9$3$H$O$9$0$K$G$-$?$N$G$9$,!"=
=1B(B</DIV>
<DIV>=1B$BA0$N7n$d<!$N7n$rI=3D$9>l9g$K!"=1B(BPHP=1B$B$r;HMQ$7$FI=3D$7$?$$=
$N$G$9$,!"=1B(B</DIV>
<DIV>=1B$B>e<j$/$$$-$^$;$s!#=1B(B</DIV>
<DIV>=1B$B%=3D!<%9$O=1B(B</DIV>
<DIV><html><BR><body =
bgcolor=3D"lime"><BR><center><BR><!--=20
<BR> =
=1B$B%+%l%s%@!<I=3D<(=1B(Bphp<BR>--><BR><?php<BR> /*=20
=1B$B:#$NF|;~$r<hF@=1B(B*/ <BR> $now_month =3D=20
getdate(time()); /*=1B$B3F9`L\=1B(B(=1B$BG/!&7n!&F|=1B(B)=1B$B=
$rG[Ns$G<u$1<h$k!#=1B(B*/<BR> $tmp =3D=20
getdate(mktime(0,0,0,$now_month[mon],1)); /* =
=1B$B:#7n$N=3Di$a$NF|;~$r<hF@=1B(B*/ <BR> $first_mday=20
=3D $tmp[wday]; /*=1B$B:#7n0lF|$NMKF|=1B(B*/ <BR> $now_day =3D =
1; /*=1B$B8=3D:_:n2h$7$F$$$kF|=1B(B*/ </DIV>
<DIV> </DIV>
<DIV> echo( "<table border=3D\"2\" width=3D\"600\" =
height=3D\"400\">"); /*=20
=1B$B%F!<%V%k$N:n@.=1B(B */ <BR> echo( =
"<tr>");<BR> echo( "<th colspan=20
=3D\"7\">$now_month[year]=1B$BG/=1B(B=20
$now_month[mon]=1B$B7n=1B(B</th></tr>");<BR> echo(=20
"</tr>");<BR> echo( "<tr>");<BR> echo( "<TD =
bgcolor =3D=20
#ffffff align =3D =
center><B>=1B$BF|=1B(B</B></TD>");<BR> echo(=20
"<TD bgcolor =3D #ffffff align =3D=20
center><B>=1B$B7n=1B(B</B></TD>");<BR> echo( =
"<TD bgcolor =3D=20
#ffffff align =3D =
center><B>=1B$B2P=1B(B</B></TD>");<BR> echo(=20
"<TD bgcolor =3D #ffffff align =3D=20
center><B>=1B$B?e=1B(B</B></TD>");<BR> echo( =
"<TD bgcolor =3D=20
#ffffff align =3D =
center><B>=1B$BLZ=1B(B</B></TD>");<BR> echo(=20
"<TD bgcolor =3D #ffffff align =3D=20
center><B>=1B$B6b=1B(B</B></TD>");<BR> echo( =
"<TD bgcolor =3D=20
#ffffff align =3D =
center><B>=1B$BEZ=1B(B</B></TD>");<BR> echo(=20
"</tr>");<BR> echo( "<tr>");</DIV>
<DIV> </DIV>
<DIV> /* =1B$BF|$K$A$N:n2h%9%?!<%H=1B(B */ <BR> for($i =3D 0; =
$i < $first_mday;=20
$i++){ /* =1B$B0lF|$NMKF|$^$G:n2h0LCV$r$:$i$9=1B(B */ =
<BR> echo(=20
"<td></td>");<BR> }</DIV>
<DIV> </DIV>
<DIV> while(checkdate($now_month[mon],$now_day,$now_month[year])){<B=
R> =20
if($now_day =3D=3D $now_month[mday]){ =
/*=1B$B:#F|$O2+?'$G:n2h$9$k!#=1B(B*/=20
<BR> echo( "<td =
bgcolor =3D=20
#ffff00 align =3D right><font size=3D\"4\" color =3D =
#00ff00><a=20
href=3D'form.php'>$now_day</a></font></td>");<BR>&nb=
sp; =20
}elseif($first_mday =3D=3D 0){ /* =
=1B$BF|MKF|$N>l9g$O@V$G:n2h$9$k=1B(B*/=20
<BR> echo( "<td =
bgcolor=20
=3D\"red\" align =3D right><font size=3D\"4\" color =
=3D#0000ff><a=20
href=3D'form.php'>$now_day</a></font></td>");<BR>&nb=
sp; =20
}elseif($first_mday =3D=3D 6){ =
/*=1B$BEZMKF|$O@D$G:n2h$9$k!#=1B(B*/=20
<BR> echo( "<td =
bgcolor=20
=3D\"blue\" align =3D right><font size=3D\"4\" color =3D =
#0000ff><a=20
href=3D'form.php'>$now_day</a></font></td>");<BR>&nb=
sp; =20
}else{ /* =1B$B$=3D$NB>$O9u=1B(B */ =
<BR> =20
echo( "<td bgcolor =3D #ffffff align =3D right><font =
size=3D\"4\"><a=20
href=3D'form.php'>$now_day</a></td>");<BR> &nbs=
p; =20
}<BR> $now_day++;<BR> =20
$first_mday++;<BR> if(($first_mday % 7)=3D=3D0){ =
/*=20
=1B$B8=3D:_!"EZMKF|$J$N$G2~9T=1B(B */ =
<BR> $first_mday=20
=3D 0;<BR> echo(=20
"</tr>");<BR> =
echo(=20
"<tr>"); <BR> =
}<BR> }</DIV>
<DIV> </DIV>
<DIV> /* =1B$BF|$K$A$N:n2h$N=3D*N;=1B(B */ =
<BR> while($first_mday =3D=3D 6){ /*=20
=1B$B%+%l%s%@!<$,Kd$^$k$^$G0LCV$r$:$i$9=1B(B */ =
<BR> echo(=20
"<td></td>");<BR> =20
$first_mday++;<BR> }</DIV>
<DIV> </DIV>
<DIV> echo( "</tr>");<BR> /* =
=1B$B%F!<%V%k$N:n2h$N=3D*N;=1B(B */=20
<BR> /*=1B$BA07n!&<!7n$r:n2h=1B(B*/<BR> echo( =
"<BR><table border=3D1=20
width=3D600>" );<BR> echo( "<tr>" );<BR> echo( =
"<TD=20
align=3D\"left\"><A href=3D\"$PHP_SELF\" name=3D\"presub\">"=20
);<BR> echo( "=1B$BA0!!7n=1B(B" );<BR> echo( "</A>" =
);<BR> echo(=20
"</TD>" );<BR> echo( "<TD align=3D\"right\"><A=20
href=3D\"$PHP_SELF\" name=3D\"nxtsub\">" );<BR> echo( =
"=1B$B<!!!7n=1B(B"=20
);<BR> echo( "</A>" );<BR> echo( "</TD>" =
);<BR> echo(=20
"</tr>" );<BR> echo( "</TABLE>");<BR> /* =
=1B$BA07n!&<!7n$N:n2h$N=3D*N;=1B(B */=20
<BR>?><BR></center><BR></body><BR></html><BR>=1B$B$G=
$9!#$3$l$GEv7n$N%+%l%s%@!<$O:n@.$G$-$^$9$,!"<!7n!&A07n$NI=3D<($,!&!&!&!#=1B=
(B</DIV>
<DIV>=1B$B$*$=3D$i$/=1B(B<A =
href=3D\"*****\">=1B$B$N2U=3Dj$K4V0c$$$,$"$k$N$G$O$J$$$+$H;W$$=1B(B</D=
IV>
<DIV>=1B$B=3D$@5#o#r:n@.$r$7$F$$$k$N$G$9$,!">e<j$/$$$-$^$;$s!#=1B(B</DIV>=
<DIV>=1B$B$I$J$?$+$h$m$7$/$*4j$$$7$^$9!#=1B(B</DIV></BODY></HTML>
------=_NextPart_000_0038_01C1C6BB.72269640--