테스트 사이트 - 개발 중인 베타 버전입니다

잔여날짜 계산 질문요. 채택완료

창쇼 4년 전 조회 4,226

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

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

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

 

아래 코드를 보니.  

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

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

 

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

 

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

 

</strong></p>

<p><?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."' ");</p>

<p>            $ms = sql_fetch("SELECT * FROM member_service WHERE od_id = '".$od_id."' ORDER BY ms_no DESC LIMIT 1");</p>

<p>            // 잔여기간

            $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;</p>

<p>            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></p>

<p>                <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 } ?></p>

<p> </p>

<p> </p>

<p><strong>
 

댓글을 작성하려면 로그인이 필요합니다.

답변 3개

채택된 답변
+20 포인트
4년 전

</p>

<p>if($limit_days <= "0") {

    $limit_days = "0";

} else if($limit_days < "7") {

    $limit_days = "<span style='color:#ff0000;'>".$limit_days."</span>";

}</p>

<p>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 5개

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

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

오늘 날짜를 기점으로 4일이 뜨네요 ㅠㅠ
블랑숑
4년 전
else if($limit_days < "7" && $limit_days > "0" ) 이렇게 해보세요
창쇼
4년 전
블랑숑님 시간 내주시어 대댓 답변 감사합니다. 아래 답변 추가 적용해보았는데. 별 반응이 없네요. ;; PHP겁네 어렵네요 ㅎㅎ
블랑숑
4년 전
그러면 위 답변 부분을 아예 빼보세요 원래 date_diff에서 1보다 2가 크면 자연스럽게 음수 나와야 하는데
창쇼
4년 전
그죠;;; 남은기간이 지났으면 "0" 이나 -1, -2 처럼 음수가 나올지 알았는데. 다시 1,2,3,4일로 카운팅이 ... ㅎㅎ 답변 주신 코드를 다 빼고 테스트 했는데. 남은기간 변화없이 숫자 컬러만 기본컬러로 변하네요.. 코딩하시는 분들 대단하신듯 하네요 ㅎㅎ

댓글을 작성하려면 로그인이 필요합니다.


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

이렇게 해 보세요.

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 3개

창쇼
4년 전
답변 감사합니다. 위 내용처럼 true 추가 적용했는데. 변화는 없네요. 그래도 답변 감사합니다.
링크는 제겐 너무 어려운 내용이라,, ㅎㅎ 너무 까막눈 같아서. 천천히 PHP공부좀 해보고싶네요,
엑스엠엘
4년 전
매뉴얼 내용이 좀 이상했는데
true가 안 되면
false로 해 보세요.
이게 안 되면 매뉴얼이 틀렸나 봅니다.
창쇼
4년 전
추가답변 감사합니다. 별 반응이 없는거 보니 공부좀 해야 겠네요. ㅎㅎ 좋은하루되세요^^

댓글을 작성하려면 로그인이 필요합니다.

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 3개

창쇼
4년 전
답변 감사합니다. 뭔간 한끗차로 오류가 있을 줄 알았는데 그게 아닌가 보네요 ㅎㅎ PHP까막눈이라. 변수를 만들진 못하지만. 점점더 PHP배워보고 싶네요 ㅎ
고급지게
4년 전
https://yujuwon.tistory.com/entry/PHP-%ED%98%84%EC%9E%AC-%EB%82%A0%EC%A7%9C-%EA%B0%80%EC%A0%B8%EC%98%A4%EA%B8%B0

여기 참고하셔서 변수 만들어서 비교한번 해보셔용
창쇼
4년 전
링크 까지 추가답변 감사합니다. 역시나 쉬운건 없네요 ㅎㅎ 날이 많이 덥네요 ㅎ 오늘 오후도 화이팅 입니다! ㅎ

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인