Extra Form
PHP PHP 7.4
CMS Rhymix 2.1

https://xetown.com/questions/1812994

이 게시물을 참조해서 나에게 맞게끔 수정해서 실시간 타임 카운트 다운이 되게는 했는데

targetDate에 확장변수를 넣을 수가 없네요.

 

{@
    $now = date("Y-m-d H:i:s");
    $date = $document->getExtraEidValueHTML($mi->end_name);
    $this_day = date_create($document->getExtraEidValueHTML($mi->end_name));
    $date1 = date("Y-m-d H:i:s",strtotime($this_day->format("Y-m-d H:i:s").($mi->i_d)));
    $datetime = new DateTime($now);
    $date2 = $datetime->modify($mi->a_d);
    $date3 = date("Y-m-d H:i:s", strtotime($date.($mi->a_h)));

    $w_d_day_text = str_replace('.', '-', $date);// D-day 날짜 설정
    $w_d_day = strtotime($w_d_day_text);
    $w_today = time();// 오늘 날짜 설정
    $w_diff = $w_d_day - $w_today;// D-day와 오늘 날짜 차이 계산
    $w_days = floor($w_diff / (60 * 60 * 24))+1;// 초를 일 수로 변환

    $years = floor($w_diff/31536000);
    $days = floor($w_diff/86400);
    $date4 = ($days -(365*$years));
    $time = $w_diff - ($days*86400);
    $hours = floor($time/3600);
    $time = $time - ($hours*3600);
    $min = floor($time/60);
    $sec = $time - ($min*60);
}

<!--@if(!$date)-->
<!--@elseif($now > $date)-->
    <span style="color:#a6a6a6; text-decoration:line-through !important;"><span class="sbtn_mini sbtn-dark" style="margin-right:5px">{$mi->end_title}</span>
<!--@elseif($now > $date3 && $now < $date)-->
    <span style="color:red"><span class="sbtn_mini sbtn-red" style="margin-right:5px">{$mi->today_title} <span id="countdown" cond="$mi->d_day">[{$mi->d_day_title} <!--@if($days)-->{$days}일<!--@end--> <!--@if($hours)-->{$hours}시<!--@end--> {$min}분 {$sec}초] 남음</span></span>
<!--@elseif($now < $date1)-->
    <span><span class="sbtn_mini sbtn-yellow" style="margin-right:5px">{$mi->ing_title} <span cond="$mi->d_day">[{$mi->d_day_title} {$days}일 {$hours}시 {$min}분 {$sec}초] 남음</span></span>
<!--@elseif($date2)-->
    <span><span class="sbtn_mini sbtn-blue" style="margin-right:5px">{$mi->approach_title} <span cond="$mi->d_day">[{$mi->d_day_title} <!--@if($days)-->{$days}일<!--@end--> {$hours}시 {$min}분 {$sec}초] 남음</span></span>
<!--@end-->

<script>
    const targetDate = new Date(2024, 03, 12, 00, 00, 00);

    const updateCountdown = () => {
        const now = new Date();
        const difference = targetDate - now; // 현재 시간과 목표 시간의 차이 (밀리초)

        // 밀리초를 일, 시간, 분, 초로 변환
        const days = Math.floor(difference / (1000 * 60 * 60 * 24));
        const hours = Math.floor((difference % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
        const minutes = Math.floor((difference % (1000 * 60 * 60)) / (1000 * 60));
        const seconds = Math.floor((difference % (1000 * 60)) / 1000);

        // 두 자리 숫자로 변환 (예: 1 -> 01)
        const pad2 = (number) => number.toString().padStart(2, "0");

        // 화면에 출력
        document.getElementById("countdown").innerHTML = `${hours}시간 ${pad2(minutes)}분 ${pad2(seconds)}초 남음`;
    };

    // 1초마다 updateCountdown() 함수 실행
    setInterval(updateCountdown, 1000);

    updateCountdown(); // 처음 로딩 시에도 시간 출력
</script>

 

const targetDate = new Date(2024, 03, 12, 00, 00, 00);

이 부분에서 날짜를 직접 입력하면 카운트가 작동이 되는데 $module_info->end_name 확장변수를 대입을 못하겠네요.  

많은 가르침 바랍니다.

  • profile
    $document->getExtraEidValueHTML($mi->end_name); 이거 말씀하시는거에요? 소스코드에 module_info 가 아니라 document 로 되어 있는것 같은데요.
  • profile ?
    예 어떤 형식이던 확장변수의 종료날짜가 해당 장소에 입력되는 형식을 구합니다