(초보)날짜 표시 질문입니다!

(초보)날짜 표시 질문입니다!

QA

(초보)날짜 표시 질문입니다!

본문

안녕하세요.

마지막 날짜 표시관련해서 질문드립니다.

현재 오류를 설명드리자면,

현재 달이 9월일때 전월(8월)을 선택해서 날짜를 띄우면,

8월이 31일 까지 있음에도 30일까지만 표시됩니다.(9월이 30일까지 있기때문에)

현재 달이 8월일때는 마지막날이 30일인 달에도 31일까지 표시됩니다.

그래서, 선택한 달의 마지막 날짜 까지만 페이지에 표시되었으면 합니다.

짜여진 코드는 아래와 같습니다.

도움 부탁드리겠습니다. 감사합니다!

<?

if(!$sYear){ $sYear = date(Y); }
if(!$sMon){ $sMon = date(m); }

$last_day = date("t", strtotime($sYear."-".$sMon."-01"));

?>

<form id="fsearch" name="fsearch" class="local_sch01 local_sch" method="post">
                            <select name="sYear" class="chose_box">
                                <?for($i=2017;$i<=date(Y);$i++){?>
                                <option value="<?=$i?>" <?if($sYear==$i){ echo "selected"; }?>><?=$i?></option>
                                <?}?>
                            </select>년

                            <select name="sMon" class="chose_box">
                                <?for($i=1;$i<=12;$i++){ if(strlen($i)==1){ $i="0".$i; }?>
                                <option value="<?=$i?>" <?if($sMon==$i){ echo "selected"; }?>><?=$i?></option>
                                <?}?>
                            </select>월

                            <input type="submit" class="submit01" value="검색">

                            </form>

 

<?php

                            for($i=1;$i<=$last_day;$i++){
                                if(strlen($i)==1){ $i="0".$i; }
                                $chkdate = $sYear.$sMon.$i;
                        ?>
                        <tr>
                            <td></td>
                        </tr>
                        <?
                            } 
                        ?>

이 질문에 댓글 쓰기 :

답변 5

strtotime 대신 mktime을 사용해 보십시요
$last_day = date('t', mktime(0, 0, 0, 1, 1, 2017));
mktime함수의 인자는 순서대로 시간, 분, 초, 월, 일, 년도 입니다.

 

sMon 값을 못받아오니까 현재달의 lastday로 계속 구하는거 같은데..

SYear나 sMon값이 정상적으로 받아지나요? 

무조건 date(m)이랑 date(Y) 값으로만 작동 안하나요?

 


$last_day = date("t", strtotime("2022-10-01"));
echo $last_day . '<br />';
echo $sYear . '<br />';
echo $sMon . '<br />';
$last_day = date("t", strtotime($sYear."-".$sMon."-01"));
echo $last_day . '<br />';

이런식으로 어디서 값이 틀어지는지도 확인해보세요

답변을 작성하시기 전에 로그인 해주세요.
전체 123,643 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT