잔여날짜 계산 질문요.

잔여날짜 계산 질문요.

QA

잔여날짜 계산 질문요.

본문

PHP는 아얘 모르고 HTML좀 할줄아는데요. 

시작일과 만료일이 있어. 남은기간이 노출됩니다. 기간이 끝나면 0 으로 나와야 하는데.

만료일로부터 오늘날자까지로 다시 카운팅 됩니다.  

 

아래 코드를 보니.  

시작일(st_date) , 만료일(sp_date) , 남은기간(limit_days)

이렇게 있어서 남은기간 디데이 7일부터 컬러를 #ff0000로 변경해라 이뜻인거 같은데요.

 

988136693_1625116956.7201.png

이건 정상적으로 나오는데.

 

988136693_1625116974.615.png

이건 4일이나 지났으니 "0" 또는 "-" 로 나오게 할수 있을까요??

 


<?php for($i=0;$i<count($item);$i++) { ?>
        <?php for($k=0;$k<count($item[$i]['opt']); $k++) { ?>
            <?php
            $ct = sql_fetch("SELECT * FROM g5_shop_cart WHERE od_id = '".$od_id."' ");
            $ms = sql_fetch("SELECT * FROM member_service WHERE od_id = '".$od_id."' ORDER BY ms_no DESC LIMIT 1");
            // 잔여기간
            $st_date = new DateTime(date("Y-m-d", time()));
            $sp_date = new DateTime($ms['sp_date']);
            $diff = date_diff($st_date, $sp_date);
            $limit_days = $diff->days;
            if($limit_days == "0") {
                $limit_days = "-";
            } else if($limit_days < "7") {
                $limit_days = "<span style='color:#ff0000;'>".$limit_days."</span>";
            }
            ?>
            <tr>
                <td class="text-center">
                    <div class="item-img">
                        <?php echo get_it_image($item[$i]['it_id'], 50, 50); ?>
                        <div class="item-type"><?php echo $item[$i]['pt_it']; ?></div>
                    </div>
                </td>
                <td class="text-center"><a href="./item.php?it_id=<?php echo $item[$i]['it_id']; ?>"><strong><?php echo $item[$i]['it_name']; ?></strong></a></td>
                <td class="text-center"><?php echo $item[$i]['opt'][$k]['ct_option']; ?></td>
                <td class="text-center"><?php echo number_format($item[$i]['opt'][$k]['sell_price']); ?></td>
                <td class="text-center"><?=$ms['st_date']?></td> 
                <td class="text-center"><?=$ms['sp_date']?></td>
                <td class="text-center"><?=$limit_days?></td>
                <td class="text-center"><?php echo $item[$i]['opt'][$k]['ct_status']; ?></td>
                <td class="text-center"><?=ms_stats($ms['ms_no'])?></td>
            </tr>
        <?php } ?>
    <?php } ?>
 
 
 

이 질문에 댓글 쓰기 :

답변 3


if($limit_days <= "0") {
    $limit_days = "0";
} else if($limit_days < "7") {
    $limit_days = "<span style='color:#ff0000;'>".$limit_days."</span>";
}

답변 감사합니다. 아래 코드로 변경했는데 아무런 변화가 없네요.

위에 이미지 처럼, 만료일이 6월27일이면 이미 만료가 된거라. "0"또는"-" 이런게 나와야 하는데.

오늘 날짜를 기점으로 4일이 뜨네요 ㅠㅠ

그죠;;; 남은기간이 지났으면 "0" 이나 -1, -2 처럼 음수가 나올지 알았는데. 다시 1,2,3,4일로 카운팅이 ... ㅎㅎ 답변 주신 코드를 다 빼고 테스트 했는데. 남은기간 변화없이 숫자 컬러만 기본컬러로 변하네요.. 코딩하시는 분들 대단하신듯 하네요 ㅎㅎ

오늘날짜 기준의 변수 만들어서 만료일과 오늘날짜변수랑 비교해서 값을 0이나 -로 하면되지않을까요


$diff = date_diff($st_date, $sp_date, true);

이렇게 해 보세요.

https://www.php.net/manual/en/datetime.diff.php

답변 감사합니다. 위 내용처럼  true 추가 적용했는데. 변화는 없네요. 그래도 답변 감사합니다.
링크는 제겐 너무 어려운 내용이라,, ㅎㅎ 너무 까막눈 같아서. 천천히 PHP공부좀 해보고싶네요,

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

회원로그인

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