[php 또는 javascript] 달력 소스
프로그래밍/PHP2015. 1. 27. 11:36
반응형
아래 소개하고 있는 소스 코드는 스크립트 언어 PHP 또는 자바스크립트를 이용해 달력을 출력하는 비교적 간단한 웹프로그램입니다. 두가지 소스중 하나를 실행 시키면 아래와 같은 이미지 처럼 출력이 됩니다. 달력을 만들기 위해서는 그 달의 첫 날짜와 마지막 날짜를 계산해야 하며 요일에 따라 글자의 색을 변화 시켜 줘야 합니다. 이해를 돕기 위해 되도록 소스 코드를 단순화 시켰으므로 코드를 차근 차근 살펴보면 이해가 되리라 생각됩니다. 달력이 투박해 보인다면 좀더 세련되게 업그레이드 해보세요.^^
[PHP로 달력 만들기 소스 코드]
<?php
function calendar(){
$year = date("Y");
$month = date("n");
$day = date("d");
$day_max = date("t",mktime(0,0,0,$month,1,$year));
$week_start = date("w",mktime(0,0,0,$month,1,$year));
$i = 0;
$j = 0;
$html = "<div class='calendar_box'><div class='calendar_title B'>".sprintf("%d-%02d-%02d",$year,$month,$day)."</div>";
while ($j<$day_max){
if ($i<$week_start) {
$html .= "<div class='calendar_text'>·</div>";
} else {
if ($i%7==0) $font_color = " RED";
else if ($i%7==6) $font_color = " BLUE";
else $font_color = "";
if ($day == ($j+1)) $font_weight = " B"; else $font_weight = "";
$html .= "<div class='calendar_text$font_color$font_weight'>" . ($j+1) . "</div>";
$j ++;
}
$i ++;
}
while ($i%7!==0){
$html .= "<div class='calendar_text'>·</div>";
$i ++;
}
$html .= "<div class='calendar_tail'></div></div>";
return $html;
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<style>
body {font-family: Verdana, Dotum; line-height:20px;}
.B {font-weight:bold}
.box {width:185px; text-align:center; border:1px solid #dddddd}
.calendar_box {width:175px; padding:5px}
.calendar_text {width:25px; float:left; text-align:center; font-size:12px}
.RED {color:red}
.BLUE {color:blue}
.calendar_title {margin:0px; text-align:center; font-size:12px; background-color:#999999; color:#ffffff}
.calendar_tail {clear:both;}
</style>
<title>PHP로 달력 만들기</title>
</head>
<body>
<div class="box">
<?=calendar();?>
</div>
</body>
</html>
function calendar(){
$year = date("Y");
$month = date("n");
$day = date("d");
$day_max = date("t",mktime(0,0,0,$month,1,$year));
$week_start = date("w",mktime(0,0,0,$month,1,$year));
$i = 0;
$j = 0;
$html = "<div class='calendar_box'><div class='calendar_title B'>".sprintf("%d-%02d-%02d",$year,$month,$day)."</div>";
while ($j<$day_max){
if ($i<$week_start) {
$html .= "<div class='calendar_text'>·</div>";
} else {
if ($i%7==0) $font_color = " RED";
else if ($i%7==6) $font_color = " BLUE";
else $font_color = "";
if ($day == ($j+1)) $font_weight = " B"; else $font_weight = "";
$html .= "<div class='calendar_text$font_color$font_weight'>" . ($j+1) . "</div>";
$j ++;
}
$i ++;
}
while ($i%7!==0){
$html .= "<div class='calendar_text'>·</div>";
$i ++;
}
$html .= "<div class='calendar_tail'></div></div>";
return $html;
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<style>
body {font-family: Verdana, Dotum; line-height:20px;}
.B {font-weight:bold}
.box {width:185px; text-align:center; border:1px solid #dddddd}
.calendar_box {width:175px; padding:5px}
.calendar_text {width:25px; float:left; text-align:center; font-size:12px}
.RED {color:red}
.BLUE {color:blue}
.calendar_title {margin:0px; text-align:center; font-size:12px; background-color:#999999; color:#ffffff}
.calendar_tail {clear:both;}
</style>
<title>PHP로 달력 만들기</title>
</head>
<body>
<div class="box">
<?=calendar();?>
</div>
</body>
</html>
[자바스크립트로 달력 만들기 소스 코드]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>자바스크립트로 달력 만들기</title>
<style>
body {font-family: Verdana, Dotum; line-height:20px;}
.B {font-weight:bold}
.box {width:185px; text-align:center; border:1px solid #dddddd}
.calendar_box {width:175px; padding:5px}
.calendar_text {width:25px; float:left; text-align:center; font-size:12px}
.RED {color:red}
.BLUE {color:blue}
.calendar_title {margin:0px; text-align:center; font-size:12px; background-color:#999999; color:#ffffff}
.calendar_tail {clear:both;}
</style>
<script>
function calendar(){
var today = new Date();
var year = today.getFullYear();
var month = today.getMonth() + 1;
var day = today.getDate();
var week_start = new Date(year,month-1,1).getDay();
var day_max = get_day_max(year,month-1);
var i = 0;
var j = 0;
var html = "<div class='calendar_box'><div class='calendar_title B'>" + year + "-" + get_number_str(month) + "-" + get_number_str(day) + "</div>";
while (j < day_max){
if (i < week_start) {
html += "<div class='calendar_text'>·</div>";
} else {
if (i%7==0) font_color = " RED";
else if (i%7==6) font_color = " BLUE";
else font_color = "";
if (day == (j+1)) font_weight = " B"; else font_weight = "";
html += "<div class='calendar_text" + font_color + font_weight + "'>" + (j+1) + "</div>";
j ++;
}
i ++;
}
while (i%7!==0){
html += "<div class='calendar_text'>·</div>";
i ++;
}
html += "<div class='calendar_tail'></div></div>";
return html;
}
function get_day_max(year,month){
var i = 29, cday;
while(i<32){
cday = new Date(year,month,i);
if (cday.getFullYear()!=year || cday.getMonth()!=month) break;
i++;
}
return i-1;
}
function get_number_str(num){
if (num<10) num = '0' + num;
return num;
}
</script>
</head>
<body>
<div class="box">
<script>
document.write(calendar());
</script>
</div>
</body>
</html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>자바스크립트로 달력 만들기</title>
<style>
body {font-family: Verdana, Dotum; line-height:20px;}
.B {font-weight:bold}
.box {width:185px; text-align:center; border:1px solid #dddddd}
.calendar_box {width:175px; padding:5px}
.calendar_text {width:25px; float:left; text-align:center; font-size:12px}
.RED {color:red}
.BLUE {color:blue}
.calendar_title {margin:0px; text-align:center; font-size:12px; background-color:#999999; color:#ffffff}
.calendar_tail {clear:both;}
</style>
<script>
function calendar(){
var today = new Date();
var year = today.getFullYear();
var month = today.getMonth() + 1;
var day = today.getDate();
var week_start = new Date(year,month-1,1).getDay();
var day_max = get_day_max(year,month-1);
var i = 0;
var j = 0;
var html = "<div class='calendar_box'><div class='calendar_title B'>" + year + "-" + get_number_str(month) + "-" + get_number_str(day) + "</div>";
while (j < day_max){
if (i < week_start) {
html += "<div class='calendar_text'>·</div>";
} else {
if (i%7==0) font_color = " RED";
else if (i%7==6) font_color = " BLUE";
else font_color = "";
if (day == (j+1)) font_weight = " B"; else font_weight = "";
html += "<div class='calendar_text" + font_color + font_weight + "'>" + (j+1) + "</div>";
j ++;
}
i ++;
}
while (i%7!==0){
html += "<div class='calendar_text'>·</div>";
i ++;
}
html += "<div class='calendar_tail'></div></div>";
return html;
}
function get_day_max(year,month){
var i = 29, cday;
while(i<32){
cday = new Date(year,month,i);
if (cday.getFullYear()!=year || cday.getMonth()!=month) break;
i++;
}
return i-1;
}
function get_number_str(num){
if (num<10) num = '0' + num;
return num;
}
</script>
</head>
<body>
<div class="box">
<script>
document.write(calendar());
</script>
</div>
</body>
</html>
반응형
'프로그래밍 > PHP' 카테고리의 다른 글
echo "" 구문 안의 스타일시트가 적용이 되지 않을때 (0) | 2015.01.27 |
---|---|
세션을 이용한 로그인 로그아웃(php) (0) | 2015.01.27 |
php 페이지 내용중 일부만 캐릭터셋 변경하기 (0) | 2015.01.27 |
[php] 숫자 세자리 수마다 콤마(,) 찍어주기 (0) | 2015.01.27 |
for 문을 이용해 변수(문자+숫자 형태)를 출력 (변수 두개) (0) | 2015.01.27 |
댓글()