웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
달력 만들기
2003.09.23 20:56
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>
예제는 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>
댓글 10
제목 | 글쓴이 | 날짜 |
---|---|---|
레이어 3 - 메뉴판때기. [1] | 미친개 | 2004.07.04 |
레이어 4 - 뽀나수 하나 [1] | 미친개 | 2004.07.07 |
레이어 5 - 뽀나수 둘 [6] | 미친개 | 2004.07.07 |
웹 문서 암호화 스크립트 [1] | 미친개 | 2004.07.20 |
아이프레임으로 문서크기 자동조절하기(완벽판) [13] | 렌디 | 2004.07.21 |
문서에 따른 아이프레임 heigh(높이) 값 자동 조절 (수정본) [3] | 스토비━ⓒ | 2004.07.31 |
원하는 아이프레임부분을 리로드하자! [1] | †천상의燦† | 2004.08.02 |
Javascipt로 구현한 MD5,MD4,SHA1 [10] | 장종석 | 2004.08.06 |
레이어를 클릭해서 보이거나 사라지게 하기 [3] | †천상의燦† | 2004.08.18 |
이미지 사이즈에 맞게 새창띄우기 [오류보완] 정확하게 안열리는 오류 [11] | beMax | 2004.08.18 |
싸이처럼 테이블 안에서 버튼으로 이동/스크롤 하기 [5] | 제로스 | 2004.09.09 |
랜디님의 iframe 크기조절 소스응용-iframe 최저길이 지정하기 [1] | 김수형 | 2004.09.10 |
셀렉트 메뉴를 통해 갤러리 만들기 | 한현종 | 2004.09.10 |
요일마다 바뀌는 상태바 인사 말~ [2] | Kasis | 2004.09.13 |
내홈피 즐겨찾기/새로고침/앞/뒤로가기 [4] | 팡이 | 2004.09.13 |
메뉴 추가 삭제 수정시 쓰면 좋을것 같네요 - 출처: http://www.happyscript.com/ [1] | 예뜨락 | 2004.09.17 |
슬라이딩 메뉴 자바스크립트 [3] | 행복한고니 | 2004.09.21 |
멀티 파일다운로드 꽁수로 구현하기 [1] | 행복한고니 | 2004.10.07 |
웹페이지에서 단축키 사용 (Firefox) [2] | 전종화 | 2004.10.07 |
자바스크립트로 구현한 윈도우 스타일.. [2] | 크래닉스 | 2004.10.07 |