생PHP로 달력 만들기

5748 단어 PHP

배경


자신을 위한 필기이기 때문에 매우 간단하다.미안합니다.
너무 쉬워서 신경 쓸 때 기능이 추가됩니다.
지금은 8월의 설정 하드코딩으로

코드


calendar.php
<?php
define("DAYS_OF_WEEK", 7);
define("MAX_WEEKS_OF_MONTH", 6);
define("NUMBER_OF_SQUARES", DAYS_OF_WEEK * MAX_WEEKS_OF_MONTH);
define("WEEK_DAYS", ['日', '月', '火', '水', '木', '金', '土']);

$_ = function($s) { return $s; };

$startDayPosition = date('w', strtotime('2020-08-01'));
$daysOfMonth = cal_days_in_month(CAL_GREGORIAN, 8, 2020);
$lastDayPosition = $daysOfMonth + $startDayPosition;
$weeksOfMonth = ceil($lastDayPosition / DAYS_OF_WEEK);
echo "<h1>2020年8月</h1>";
echo '<table>';

for ($d = 0; $d < count(WEEK_DAYS); $d++) {
    echo "<td>{$_(WEEK_DAYS[$d])}</td>";
}

echo "<tr>";

for ($squarePosition = 1; $squarePosition <= $lastDayPosition; $squarePosition++) {
    if($squarePosition - 1 >= $startDayPosition) {
        $dayCount = $squarePosition - $startDayPosition;
        echo "<td>$dayCount</td>";
    } else{
        echo "<td> </td>";
    }
    if ($squarePosition % DAYS_OF_WEEK === 0) {
        echo "</tr>";
    }
}

외관


그렇습니다.

두 번 이상 사용하지 않는 조건하에서 더 좋은 작법이 있으면 저에게 알려주세요.

좋은 웹페이지 즐겨찾기