<?php
if(isset($_GET['year'])){
$year=$_GET['year'];
}else{
$year=date("Y");
}
if(isset($_GET['month'])){
$month=$_GET['month'];
}else{
$month=date("m");
}
?>
이 부분은 처음 코드들을 실행하면 $_GET['']변수가 할당되어있으면 (get방식으로 정보를 받았으면) 그 정보가 $year이나$month에 할당되고 아니면 현재 년과 월이 각각 date함수로 인해서 할당된다.
<div class="title">
<h1>Calender</h1>
<form action="" method="GET">
<select name="year">
<?php for($i=1950; $i<=2050; $i++) {?>
<option value="<?=$i?>" <?php if($year == $i){echo "selected";}?> ><?=$i?>년
<?php } ?>
</select>
<select name="month">
<?php for($i=1; $i<=12; $i++) {?>
<option value="<?=$i?>" <?php if($month == $i){echo "selected";}?> ><?=$i?>월
<?php } ?>
</select>
<button type="submit">선택</button>
</form>
</div>
<?php if($year == $i){echo "selected";}?> ><?=$i?>
이 코드는 $year변수가 for문 안에 $i랑 같으면 option태그 안에 selected 기능이 활성화되는 함수이다.
=는 대입
-> 결과 option의 제일 마지막에 고정 ex)2050년 12월
+) 다른 옵션 선택해도 마지막에 고정
==는 비교연산자 이지만 타입은 안같아도 됨
-> 문자열"1" 과 정수1을 같다고함
-> 결과 지정된 함수에 고정 ex)현재년 현재월
+) 다른 옵션 선택시 그 선택에 고정 ex) 2022년 11월 선택 거기 고정
===엄격하게 구분함
-> 문자열"1" 과 정수1을 다르다고함
->결과 option의 제일 첫번째에 고정 ex)1950년 1월
+) 다른 옵션 선택해도 첫번째에 고정
| 접속 직후 | option 선택 후 |
|---|---|
![]() | ![]() |
<hr>
| 예시 |
|---|
![]() |
<?php
$thisMonth=$year."-".$month."-01";
$startDay=strtotime($thisMonth);
$blank=date("w",$startDay);
$lastDay=date("t",$startDay);
?>
$thisMonth변수는 현재년도와 현재달의 1일을 구하는 변수이다.
$startDay변수에서 strtotime함수는 1970년 시작부터 지금까지 시간을 초로 나타내준다.
$blank는 date함수의 w옵션으로 매월의 시작요일을 숫자로 알려준다.
ex) 일 0 월 1 화 2
$lastDay는 date함수의 t옵션으로 매월 마지막 일을 알려준다. ex)28,29,30,31
<?php for($i=1; $i<=$blank; $i++){?>
<div class=item></div>
<?php }?>
| blank |
|---|
![]() |
<?php for($i=1; $i<=$lastDay; $i++){ ?>
<div class=item><?=$i?></div>
<?php }?>
| lastday |
|---|
![]() |
calender.php
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style>
.title{display: flex;}
.item{width: 14%; height: 100px; border: 1px solid #aaa; float: left;}
.week{width: 14%; height: 30px; border: 1px solid #aaa; float: left; text-align: center;}
</style>
</head>
<body>
<?php
if(isset($_GET['year'])){
$year=$_GET['year'];
}else{
$year=date("Y");
}
if(isset($_GET['month'])){
$month=$_GET['month'];
}else{
$month=date("m");
}
?>
<div class="title">
<h1>Calender</h1>
<form action="" method="GET">
<select name="year">
<?php for($i=1950; $i<=2050; $i++) {?>
<option value="<?=$i?>" <?php if($year == $i){echo "selected";}?> ><?=$i?>년
<?php } ?>
</select>
<select name="month">
<?php for($i=1; $i<=12; $i++) {?>
<option value="<?=$i?>" <?php if($month == $i){echo "selected";}?> ><?=$i?>월
<?php } ?>
</select>
<button type="submit">선택</button>
</form>
</div>
<hr>
<div class="week">Sunday</div>
<div class="week">Monday</div>
<div class="week">Tuesday</div>
<div class="week">Wednesday</div>
<div class="week">Thurday</div>
<div class="week">Friday</div>
<div class="week">Saturday</div>
<?php
$thisMonth=$year."-".$month."-01";
$startDay=strtotime($thisMonth);
$blank=date("w",$startDay);
$lastDay=date("t",$startDay);
?>
<?php for($i=1; $i<=$blank; $i++){?>
<div class=item></div>
<?php }?>
<!-- 일표시 -->
<?php for($i=1; $i<=$lastDay; $i++){ ?>
<div class=item><?=$i?></div>
<?php }?>
</body>
</html>
---Normaltic Study 6주차 ---