Recommanded Free YOUTUBE Lecture: Learning and Hacking VPC

간단한 php 달력 생성 함수

심심해서 만들어 봤음.
  • 대충돌아는 감
  • 코드좀 정리해야함.
  • next, prev 링크 수정해야함.
  • 좀더 일반화 시킬 수 있는 방법을 생각해 봐야지.

출력결과

코드

function calendar($year,$mon = 1)
{
$mday_list = array('s', 'm', 't' );
$day_start_unixtime = mktime(0,0,0,$mon,1,$year);
$day_start = date('N', $day_start_unixtime);
$cur_mon = $mon;
$idx = 1;
$date_N = date('N',$day_start_unixtime);
echo "<table class=wiki>\n";
echo "<tr><td colspan=7 align=center><div class=warn2>",date('Y m', $day_start_unixtime),"</div></td></tr>";
echo "<tr><td>Mo</td><td>Tu</td><td>We</td><td>Th</td><td>Fr</td><td>Sa</td><td>Su</td></tr>";
$current_unixtime = $day_start_unixtime;
while(1)
{
if((int)$cur_mon != (int)date('m', $current_unixtime)) break;
$date_N = date('N',$current_unixtime);
if(($date_N == 1)) echo "<tr>";
if($idx == 1)
{
$date_N = date('N',$current_unixtime);
$idx += $date_N;
for($i = 0 ; $i < $date_N-1; $i++)
{
echo "<td>&nbsp;</td>";
}
}
$link_date = date("Y-m-d", $current_unixtime);
echo "<td><a href=test.com?d=$link_date>",date("d", $current_unixtime),"</a></td>";
 
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX