묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
처음으로 프로그래밍했는데 좀 봐주셔요 ;;
2003.01.18 04:58
어제부터 php 공부 시작하기 시작했습니다
의욕 불끈 불끈 -_-!
책에 있는거 4시간동안 이해하고 또 이해하고
그리곤 예제를 덮어놓고선 함수들만 찾아가며 프로그래밍을 해봤습니다.
현재의 년 과 달 을 구해서 그 달의 달력을 출력하는 프로그램인데요..
2003년 분명 1월 1일은 수요일인데 제가 만든 프로그램에서는 토요일부터 시작을 하네요 ㅠㅠ 흑..
어디가 틀렸는지.. 좀 봐주십시오 부탁드릴게요..
<?
$now_unix = mktime();
// 현재 시간을 타임스탬프 값으로 받는다
$realtime = getdate($now_unix);
// 위에서 받은 타임스탬프 값으로 현재의 시간을 구한다
$now_month = $realtime["mon"];
$now_year = $realtime["year"];
$now_total_days = date("t",$now_unix);
//현재 월의 마지막 날을 구한다
?>
<table border="1" width="352">
<tr>
<td width="350" height="23" colspan="7">
<p align="center"><? echo "$now_year 년 $now_month 월"; ?></p>
</td>
</tr>
<tr>
<td>
<p align="center">일</p>
</td>
<td>
<p align="center">월</p>
</td>
<td>
<p align="center">화</p>
</td>
<td>
<p align="center">수</p>
</td>
<td>
<p align="center">목</p>
</td>
<td>
<p align="center">금</p>
</td>
<td>
<p align="center">토</p>
</td>
</tr>
<tr>
<?
$firstday = date("w",$now_unix);
$col = 0;
for($i = 0;$i < $firstday;$i++) {
echo ("<td><div align='center'> </div></td>");
$col++;
}
for($j = 1;$j <= $now_total_days;$j++) {
echo ("<td><div align='center'>$j</div></td>");
$col++;
if($col == 7) {
echo ("</tr><tr>");
$col = 0;
}
}
while($col > 0 && $col < 7) {
echo ("<td><div align='center'> </div></td>");
$col++;
}
?>
이상입니다 ^^
의욕 불끈 불끈 -_-!
책에 있는거 4시간동안 이해하고 또 이해하고
그리곤 예제를 덮어놓고선 함수들만 찾아가며 프로그래밍을 해봤습니다.
현재의 년 과 달 을 구해서 그 달의 달력을 출력하는 프로그램인데요..
2003년 분명 1월 1일은 수요일인데 제가 만든 프로그램에서는 토요일부터 시작을 하네요 ㅠㅠ 흑..
어디가 틀렸는지.. 좀 봐주십시오 부탁드릴게요..
<?
$now_unix = mktime();
// 현재 시간을 타임스탬프 값으로 받는다
$realtime = getdate($now_unix);
// 위에서 받은 타임스탬프 값으로 현재의 시간을 구한다
$now_month = $realtime["mon"];
$now_year = $realtime["year"];
$now_total_days = date("t",$now_unix);
//현재 월의 마지막 날을 구한다
?>
<table border="1" width="352">
<tr>
<td width="350" height="23" colspan="7">
<p align="center"><? echo "$now_year 년 $now_month 월"; ?></p>
</td>
</tr>
<tr>
<td>
<p align="center">일</p>
</td>
<td>
<p align="center">월</p>
</td>
<td>
<p align="center">화</p>
</td>
<td>
<p align="center">수</p>
</td>
<td>
<p align="center">목</p>
</td>
<td>
<p align="center">금</p>
</td>
<td>
<p align="center">토</p>
</td>
</tr>
<tr>
<?
$firstday = date("w",$now_unix);
$col = 0;
for($i = 0;$i < $firstday;$i++) {
echo ("<td><div align='center'> </div></td>");
$col++;
}
for($j = 1;$j <= $now_total_days;$j++) {
echo ("<td><div align='center'>$j</div></td>");
$col++;
if($col == 7) {
echo ("</tr><tr>");
$col = 0;
}
}
while($col > 0 && $col < 7) {
echo ("<td><div align='center'> </div></td>");
$col++;
}
?>
이상입니다 ^^
댓글 4
-
미자
2003.01.18 04:58
-
행복한고니
2003.01.18 07:14
mktime의 사용법이 이상하네요. -_-;; mktime 대신 time() 으로 바꿔보시구요...
음... 그리고 getdate를 굳이 사용할 필요는 없습니다.
date() 함수 관련 레퍼런스를 찾아보시면 알겠지만,
date("Y") 하면 현재의 연도가, date("m")하면 현재의 월이 출력됩니다.
즉, 현재의 날짜를 받기 위해서라면 time()도 getdate도 필요없다는 말이지요~ ^^;;
윗부분은 이렇게 표현할 수도 있겠네요.
<?
$year = date("Y");
$month = date("m");
$last_day = date("t");
?>
$first_weekday = date("w",time());
그 외의 나머지 부분은... 차차 늘겠죠~ ^^;;
여러가지 알고리즘이 있지만, 당장 알려드리기엔 그렇구요... 열심히 공부하시다 보면 길이 보입니다~ ^^;; -
TheMics
2003.01.18 19:33
날짜는 행복한고니님 방식대로 받으시고요, 달력 만들기에는 기본적으로 이중 for문을 사용합니다.
첫번째 for문은 가로를, 두번째 for문에서는 세로를 뿌려주로요, 날짜는 절대적인 변수를 사용해 그달의 첫날부터 1씩 올려줍니다.
또한 이렇게 하면 32일이 생길 수도 있는데요, 올바른 날자인지 확인하는 함수(까먹음-_-;;)를 써서 맞을 경우만 표시하면 되겠죠.. -
미자
2003.01.19 17:12
아..
date("w") 함수에서 timestamp값으로 그 달의 1일 값을 주지 않았었군요.
그래서 1일의 요일이 현재일의 요일값으로 나왔었다는...
아하 ~ 그렇구나 아하 ~ 그렇구나 ~ 웃거나 말거나~~
ㅋㅋㅋ php 잼나군요 -_-! 신난당~
주석은 처음에 달다가 나중에는 귀찮아져서 안달았습니다 ;; 죄송 죄송