2012-08-10 3 views
1

그래서 최근에는 PHP와 HTML을 사용하여 캘린더를 만드는 멋진 튜토리얼을 발견했습니다. 튜토리얼의 많은 코드를 사용했기 때문에 모든 수학을 저절로하지 않아도되었습니다. 날짜는 확실히 빨아. 어쨌든, 캘린더는 하나의 작은 세부 사항을 제외하고는 내가 원했던대로 작동합니다.내 캘린더에서이 모든 것이 어디에서 오는가?

이전 달과 다음 달을 탐색하기위한 단추와 현재 달 이름은 n의 행입니다. 네비게이션 버튼과 월 이름은 둘 다 자체 테이블에 있고 그 사이에는 코드가 없습니다. 구글 크롬에서, n 개의의이 같은 큰 행에 있습니다 인터넷 익스플로러에서, n 개의의 각 행에 대해 하나 N으로, 컬럼에

nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn

있다. 나는 잠시 동안 코드를 살펴 보았지만 여전히 이들이 어디에서오고 있는지, 왜 오는지 알 수 없다. 나는 PHP에서 날짜 함수를 사용하는 것에 익숙하다. 그래서 이것과 관련이 있는지 궁금하다.

다음은 문제의 코드입니다.

<?php 
include'../../includes/head.inc'; 
include'../../includes/secure.inc'; 

$monthNames = Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"); 

if (!isset($_REQUEST["month"])) $_REQUEST["month"] = date("n"); 
if (!isset($_REQUEST["year"])) $_REQUEST["year"] = date("Y"); 

$cMonth = $_REQUEST["month"]; 
$cYear = $_REQUEST["year"]; 

$prev_year = $cYear; 
$next_year = $cYear; 
$prev_month = $cMonth-1; 
$next_month = $cMonth+1; 

if ($prev_month == 0) { 
$prev_month = 12; 
$prev_year = $cYear - 1; 
} 
if ($next_month == 13) { 
$next_month = 1; 
$next_year = $cYear + 1; 
} 
?> 

<div class="calendar"> 
<table width="200"> 
<tr align="center"> 
<td bgcolor="#999999" style="color:#FFFFFF"> 
<table width="100%" border="0" cellspacing="5" cellpadding="5"> 
<tr> 
<td width="50%" align="left"> <a href="<?php echo $_SERVER["PHP_SELF"] . "?month=". $prev_month . "&year=" . $prev_year; ?>" style="color:#FFFFFF">Previous</a></td> 
<td width="50%" align="right"><a href="<?php echo $_SERVER["PHP_SELF"] . "?month=". $next_month . "&year=" . $next_year; ?>" style="color:#FFFFFF">Next</a> </td> 
</tr> 
</table> 
</td> 
</tr> 
<tr> 
<td align="center"> 
<table width="100%" border="0" cellpadding="5" cellspacing="5"> 
<tr align="center"> 
<td colspan="7" bgcolor="#999999" style="color:#FFFFFF"><strong><?php echo $monthNames[$cMonth-1].' '.$cYear; ?></strong></td> 
</tr> 
<tr> 
<td align="center" bgcolor="#999999" style="color:#FFFFFF"><strong>S</strong></td> 
<td align="center" bgcolor="#999999" style="color:#FFFFFF"><strong>M</strong></td> 
<td align="center" bgcolor="#999999" style="color:#FFFFFF"><strong>T</strong></td> 
<td align="center" bgcolor="#999999" style="color:#FFFFFF"><strong>W</strong></td> 
<td align="center" bgcolor="#999999" style="color:#FFFFFF"><strong>T</strong></td> 
<td align="center" bgcolor="#999999" style="color:#FFFFFF"><strong>F</strong></td> 
<td align="center" bgcolor="#999999" style="color:#FFFFFF"><strong>S</strong></td> 
</tr> 

<?php 
$timestamp = mktime(0,0,0,$cMonth,1,$cYear); 
$maxday = date("t",$timestamp); 
$thismonth = getdate ($timestamp); 
$startday = $thismonth['wday']; 
for ($i=0; $i<($maxday+$startday); $i++) { 
if(($i % 7) == 0) echo "<tr>n"; 
if($i < $startday) echo "<td></td>n"; 
else echo "<td align='center' valign='middle' height='20px'>". ($i - $startday + 1) . "</td>n"; 
if(($i % 7) == 6) echo "</tr>n"; 
} 
?> 

</table> 
</td> 
</tr> 
</table> 
</div> 

<?php 
include'../../includes/footer.inc'; 
?> 

코드는 그냥 그 순간에 일을 얻으려고 노력했다 나중에 모든 서식 일을 계획하고 있기 때문에 약간의 실수입니다. 나는이 처음부터 제거해야합니다.

도움을 주시면 감사하겠습니다. 코드의 끝을 향해

답변

13

:

if(($i % 7) == 0) echo "<tr>n"; 
if($i < $startday) echo "<td></td>n"; 
else echo "<td align='center' valign='middle' height='20px'>". ($i - $startday + 1) . "</td>n"; 
if(($i % 7) == 6) echo "</tr>n"; 

누군가는 각 라인의 끝에서 \n을보고하고 \ 아니라 n 부분을 제거 말하고 싶지만.

+0

감사합니다. 감사합니다. 감사합니다. 나는 그것이 게시 된 포럼이 깨 졌다고 생각한다. –

관련 문제