잔여날짜 계산 질문요.

잔여날짜 계산 질문요.

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공부좀 해보고싶네요,

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

회원로그인

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