주간 베스트 월간 베스트 3개월 베스트 베스트 게시물
연길시 신화서점 조선말 도서

PHP 기초활용 - (5) 카운터 기초 5 끝

네로 | 2003.02.24 00:08:44 댓글: 0 조회: 438 추천: 3
분류웹 프로그래밍 https://life.moyiza.kr/itstudy/1758890
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
추천 (3) 선물 (0명)
IP: ♡.27.♡.234
3,006 개의 글이 있습니다.
제목 글쓴이 날짜 조회
관리자
2003-09-20
11940
관리자
2003-09-20
11488
관리자
2003-09-20
20621
지구인
2010-08-27
19413
지구인
2009-09-07
13735
SOLIDH
2010-01-29
15693
엔죠라이프
2004-10-07
16784
네로
2003-02-24
629
네로
2003-02-24
562
네로
2003-02-24
1122
네로
2003-02-24
653
네로
2003-02-24
438
네로
2003-02-24
477
네로
2003-02-24
470
네로
2003-02-24
425
네로
2003-02-24
386
네로
2003-02-24
438
네로
2003-02-24
425
네로
2003-02-24
427
네로
2003-02-24
525
네로
2003-02-24
514
네로
2003-02-24
1442
네로
2003-02-24
718
네로
2003-02-24
568
네로
2003-02-24
538
네로
2003-02-24
675
네로
2003-02-24
628
네로
2003-02-24
489
모이자 모바일