PHP 기초활용 - (5) 카운터 기초 5 끝
글쓴이 : 悲魂(비혼), 2000/08/09(수)
본 강좌는 [PHP 기초중의 기초] 후속편입니다. 이번 강좌부터는 앞으로의 PHP 프로그래밍에 있어 도움될만한 내용으로 진행할 것입
니다. 본 강좌의 내용은 여전히 PHP를 전혀 모르는 분, 이제 막 PHP를 공부하기 시작한 분들을 대상으로 합니다. 내용의 수정이 없
는 한 자유로운 이용 및 배포가 가능합니다. 강좌의 내용 중 틀린 부분이 있거나 이해가지 않는 부분 등이 있으면 비혼의 조그만 세
상(http://soulstar.new21.org/)이나 흑협의 PHP Tip( http://phptip.com/) 게시판에 글을 남겨주시면 고맙겠습니다. [참고 : 이번
강좌부터는 진행 속도가 다소 느릴 수 있으니 늦게 올라와도 이해해 주시기 바랍니다.]
* * * * *
...DB도 다루지 않으면서 간단한 파일만 다루는 카운터로 너무 오래 시간을 끌었습니다...
...나중에 MySQL과 연동해 PHP 프로그램을 작성하는 강좌에서 DB를 이용한 카운터를 만들어보겠고, 오늘은 마지막 과정 비혼의 조
그만 세상에서 현재 사용중인 날짜 카운터에 대해 알아보겠습니다...
* * * * *
오늘은 강좌가 아닙니다. 팁(Tip) 정도가 되겠군요. ^^;
2000년이 시작되기 전에 2000년이 앞으로 며칠 남았다 하는 광고를 한번쯤은 보셨겠죠? 무엇이 개최되는 날 며칠전... D-Day라고들
하죠... 그것을 자신의 홈페이지에 이용해 봅시다. ^^;
우선은 날짜를 이용하기 위한 프로그램부터 볼까요...?
filename : exam5.php
<?php
function Con_day($date) // Julian 날짜로 변환
{
$yy = substr($date,0,4);
$mm = substr($date,4,2);
$dd = substr($date,6,2);
if($mm <= 2)
{
$mm += 12;
$yy--;
}
$a = (int)($yy/100);
$b = 2 - $a + (int)( $a / 4 );
$conday = (int)(365.25 * ( $yy + 4716 )) + (int)(30.6001 * ( $mm + 1 )) + $dd + $b - 1524.5;
return $conday;
}
function showcountday($target_date) // 대상 날짜 지정
{
$today_date=date("Ymd");
$target_jd = Con_day($target_date);
$today_jd = Con_day($today_date);
$temp = $today_jd - $target_jd;
if($temp == 0) echo "오늘";
else
{
if($temp<0)
{
$temp *= -1;
echo "$temp"."일 남음";
}
else echo "$temp"."일째";
}
}
?>
일반적으로 사용하는 날짜 형식은 Gregorian 형식입니다. 달력을 만들어 본 분이 계실지 모르겠지만 일반적인 프로그램에서는
Julian 형식을 이용합니다. 기원전 4713년 1월 1일을 기준으로 하여 경과한 날을 말하며, 평년과 윤년에 대한 처리가 필요없기 때문
에 위의 소스처럼 간단합니다.
Gregorian 형식을 Julian 형식으로 바꾸기 위한 계산식에 대해서는 언급하지 않겠습니다. 날짜 변환을 위한 공식이에요. 섭씨를 화
씨로, 화씨를 섭씨로 변환하는 것과 같은... ^^;
자, 그럼 이 두 개의 함수를 어떻게 이용할까요? 예제 파일을 하나 더 올립니다.
filename : exam5.html
<?php include "exam5.php"; ?>
<html>
<head>
<title>PHP 기초활용
<body>
<h4>날짜 카운터 실행 예를 보시겠습니다.
<h5>2000년 10월 01일은 앞으로 <?php showcountday("20001001"); ?>
<h5>1999년 10월 01일에서 <?php showcountday("19991001"); ?>
<h5>2000년 08월 09일 <?php showcountday("20000809"); ?>
<h5>2000년 07월 10일 <?php showcountday("20000710"); ?>
<h4>예를 마치겠습니다.
파일의 확장자는 .html이나 .php로 하시면 됩니다. 두 개의 파일을 하나에 넣어 이용해도 좋지만 미관상 보기좋게 하기 위해, 또한
다른 파일들에서도 사용하기 편하게 분리를 해봤습니다.
PHP 기초중의 기초 강좌에서 이미 include문에 대한 소개는 마쳤습니다. ^^; 파일을 불러와 이용하는 것 정도로만 이해하고 넘어가
시면 됩니다...
html 파일의 소스를 보면 맨 앞에 <?php include "exam5.php"; ?>이라는 php 프로그램 명령이 들어갔고 나머지는 일반 html 파일이
죠? 그러다 원하는 날짜를 구하는 부분에서 <?php showcountday("yyyymmdd"); ?> 이런 형식으로 위에서 인클루드한 함수를 호출해
써먹었죠.
실행 결과부터 볼까요~?
===실행결과 시작===
날짜 카운터 실행 예를 보시겠습니다.
2000년 10월 01일은 앞으로 53일 남음
1999년 10월 01일에서 313일째
2000년 08월 09일 오늘
2000년 07월 10일 30일째
예를 마치겠습니다.
===실행결과 끝===
어때요~? 오늘 날짜를 기준으로 원하는 날짜가 며칠 지났는지, 며칠 남았는지 쉽게 알 수 있죠? 숫자 카운터와 함께 사용하면 이쁠
것 같군요~.
[정리]
1. (int) - 정수 형태로 변환
ex) echo (int)(4.75); // 실행 결과는 4 만 출력
2. include - 원하는 파일을 포함
ex) include "exam5.php";
3. <? ~ ?>, <?php ~ ?> - PHP 프로그램의 시작과 끝
* * * * *
유용한 소스같지 않아요...? ^^;
[과제] 카운터 기초(1회~5회) 강좌에 나온 명령어들에 대해 복습해 보세요.
[과제게시판] http://soulstar.new21.org/v1.0/zeroboard/zboard.php3?id=report_1
* * * * *
PHP 기초활용
(5) 카운터 기초 5 끝 : http://soulstar.new21.org/study2/study5.htm
예제 : http://soulstar.new21.org/study2/exam5.php
예제 : http://soulstar.new21.org/study2/exam5.html