웹마스터 팁

달력 만들기

2003.09.23 20:56

TheMics

http://micsland.com/temp/calendar.php자동으로 달력을 만들어주는 소스입니다. 로직이 좋은지 어떤지는 저도 잘 모르겠구요..(제 소스 말고 다른 소스를 아직까지 못본;;; 이걸 만든것도 달력 소스가 없서서 만든거라죠;쿨럭;)

예제는 Link # 1에서 보실 수 있습니다. 특히 이번에 컬러풀하게 하려고(모 회원으로부터 필-_-을 받고'ㅡ') 많은 노력-_-을 했으니 더 잘 봐주세요;;


<table>
<?
//넘어오는 값이 없을 경우 이번달의 달력을 표시
if(!$y) $y = date("Y");
if(!
$m) $m = date("n");

//날짜 체크
if($y < 1970 or $m < 1 or $m > 12) die("정상적인 날짜를 입력해주세요.");

//이전/다음 달 계산
//기본적으로 년도는 올해와 같게, 이전/다음달은 현재 달에서 +1,-1한 값으로 설정
$b_y = $y;
$n_y = $y;
$b_m = $m - 1;
$n_m = $m + 1;

//1월이면 이전달은 12, 이전해는 현재 해 -1
//12월이면 다음달은 1, 다음해는 현재 해 +1로 변경
if($m == 1) {
    
$b_y = $y - 1;
    
$b_m = 12;
} elseif(
$m == 12) {
    
$n_y = $y + 1;
    
$n_m = 1;
}

//이번 달 마지막날 구함
$last_day = date("t",mktime(,,,$m,1,$y));

//이번 달 첫 요일/마지막 요일을 숫자로 리턴한 값 구함
$start = date("w",mktime(,,,$m,1,$y));
$end = date("w",mktime(,,,$m,$last_day,$y));

//달력 넘기는 링크, 년/월, 요일 등 날짜 위 부분 표시
$print = "<tr><td><a href='$PHP_SELF?y=$b_y&m=$b_m'>◀</a></td>".
         
"<td colspan='5' align='center'>${y}년 ${m}월</td>".
         
"<td><a href='$PHP_SELF?y=$n_y&m=$n_m'>▶</a></td></tr>n".
         
"<tr><td><font color='red'>일</font></td><td>월</td><td>화</td><td>수</td>".
         
"<td>목</td><td>금</td><td><font color='blue'>토</font></td></tr>";

//달력 시작 부분 빈칸 표시
//현재 달의 시작 요일이 일요일이 아니면 해당 만큼 colspan을 줌
if($start != ) $print .= "<tr><td colspan='$start'></td>";

for(
$i = 1;$i <= $last_day;$i++) {
    
//1일부터 마지막 날까지 루프를 돌아 해당만큼 <td>를 줌
    //일요일이면 <tr>을 넣어줌
    
$s = mktime(,,,$m,$i,$y);

    
$t = "";
    
$p = $i;

    
//오늘은 <b>로 강조
    
if($y == date("Y") and $m == date("m") and $i == date("d")) $p = "<b>$p</b>";

    
//일요일은 빨간색, 토요일은 파란색으로 강조 및 각각 <tr>과 </tr>넣어줌
    
if(date("w",$s) == ) {
        
$p = "<font color='red'>$p</font>";
        
$print .= "<tr>";
    } elseif(
date("w",$s) == 6) {
        
$p = "<font color='blue'>$p</font>";
        
$t = "</tr>n";
    }

    
$print .= "<td>$p</td>$t";
}

//달력 끝부분 빈칸 표시
//토요일이 아니면 6 - 요일 숫자만큼 빈칸을 줌
if($end != 6) $print .= "<td colspan='".(6 - $end)."'></td></tr>";

echo(
$print);
?>
</table>

제목 글쓴이 날짜
접속자의 IP를 화일로 저장(기능추가) [27] 전원주 2003.11.06
호스팅업체에서 GD를 지원하는지 여부를 알 수 있게해주는 소스 [12] Wizard 2003.11.05
홈페이지 관리자 모드 구축하기 (HTTP 인증, 중복 맞음) [10] file 9000㎒ 2003.11.01
include, onload, <span id=...> 다계층메뉴 활용 강좌 [2] 김병희 2003.10.25
신문기사 긁어오기 [28] horizon 2003.10.20
공지사항|일기장 4강 - notice.php 간단한 글보이기 시루바 2003.10.16
최신인기가요 순위 한방에 뽑아오기 [10] 제누스 2003.10.16
알기쉬운 웹용 MySQL 관리도구, phpMyAdmin 설치하기 [10] 허창원 2003.10.11
MSN Messenger Class - file HungryMania 2003.10.10
공지사항|일기장 3장 write_ok.php //간단한 입력쿼리문//수정 [5] 시루바 2003.10.08
내 홈페이지의 방문자 어디서 접속했을까 알아봅시다 [21] file 버찌소년 2003.10.08
공지사항|일기장 프로그램 2장:코딩구조와write.php [2] 시루바 2003.10.02
[초보] 확장자 체크하는 매우 간단한 소스; [4] 에지 2003.09.29
인터넷 사이트 , MS 오피스로 관리하기 3 공시사항 나타내기 [5] file 한꼬마 2003.09.24
Whois를 이용해서 접속자가 사용하는 ISP출력(한국통신,하나로,두루넷 등등) [6] 김재경 2003.09.23
달력 만들기 [10] TheMics 2003.09.23
php+mysql>>공지사항|일기장 프로그램 1장:DB구조,schema 파일로 테이블생성하기! [2] 시루바 2003.09.23
인터넷 사이트, MS 오피스로 관리하기 2 공지사항 [4] file 한꼬마 2003.09.23
인터넷 사이트 , MS 오피스로 관리하기 [3] file 한꼬마 2003.09.22
임시적으로 php.ini 환경변수들 대처하기 [2] impre 2003.09.20