질문/조언질답게시판

확장변수 년월일을 오늘 날짜와 구분하는 조건문이 혹시 있나요?

2018-11-30 12,44,57.JPEG

 

사용자 정의 이름 date,  형식 년월일로 지정한 확장변수에 입력된 년월일 값을  오늘 날짜와 비교하는 조건을 걸고 싶습니다.

얘를 들면 입력된 확장변수 date가 현재 오늘날짜와 비교해서

 

이전날자인 경우 이전날짜입니다.

오늘인경우 오늘입니다.

이후날자인 경우 이후 날자입니다.

 

이런 식으로 조건문을 작성하고 싶은데 xe 확장변수 형식 "년월일" 값을 오늘 날짜와 비교하는 조건문이 혹시 있나요?

  • profile

    스킨에서 적용하시려고 하는 것으로 바꿔서 써보면..

    {@ $now = date("Ymd");} // 현재 날짜를 이런 형식으로 구한다음...

    <!--@if($now == 사용자정의값)-->

    <!--@else-->

    <!--@end-->

    이런식으로 해주면 되지 않을까 합니다. 물론 사용자정의값에서 날자를 가져올때도 같은 형식이어야 할 것이구요.

    같거나 크거나 작거나 세가지를 모두 비교하시려면 <!--@else if ($now 비교) --> 로 분기를 한번 더해서 비교를 해주셔야 할 것 같구요.

     

     

    사실 대부분 php에서 사용하는 함수들로 가능한 것들이어서 이런 것이 필요할때는 오픈소스의 최대 장점인 다른 자료 소스를 보시면 많은 곳에서 사용하니 쉽게 찾으실 수 있을 겁니다. 물론 그렇게 하고 계시겠지만요...

  • profile profile
    {@ $now = date("Ymd");} 이런식으로 $now 변수값이 추가할 필요가 없습니다.

    왜냐하면 아래 if문에서는 한번만 사용하기 때문이죠.
    한번 사용하는 구문에서는 굳이 변수를 넣어서 메모리를 기억하게 할 필요는 없지요.

    <!--@if(date("Ymd") == $userExtraVars->regdate)-->
    <!--@else-->
    <!--@end-->

    $userExtraVars->regdate 부분은 질문자가 적용하는 상황에 따라서 내용이 달라지는 부분입니다.

    확장변수이니 대부분은 $extra_vars 을 통해서 넣는것 같으니 해당 변수쪽 확인 잘해보세요.(참고로 이 변수값들은 사이트들의 설정에 따라 많이 달라져요.)
  • profile profile

    동양에서 사용하는 "년월일" 날짜 표기의 우수성이 이런 부분에서 드러나지요 ㅎㅎ

    <!--@if($now == 사용자정의값)-->
        오늘
    <!--@elseif($now > 사용자정의값)-->
        어제
    <!--@elseif($now < 사용자정의값)-->
        내일
    <!--@end-->

    이렇게 함수도 안 쓰고 부등호만으로 비교가 가능하니까요.
    미국에서 쓰는 "월일년" 날짜 표기나 유럽식 "일월년" 방식이라면 이런 거 절대로 안 됩니다!

    01012019 < 12312018 ㅋㅋㅋ

  • profile profile
    전 사이트 운영을 하면서 신기한거 천지 입니다 ㅋ 같은 날짜도 맘대로 요리조리 순서를 맘대로 할 수 도 있고 ㅋㅋ 개발자들의 머리는 참 비상합니다 ㅋ
  • profile profile
    오... 조건문 안에 직접 사용도 가능하군요~~
  • profile ?

    답변감사합니다.

    게시판 리스트화면에서 제목앞에 알려주신 대로 소스를 아래와 같이 넣어봤습니다. 확장변수(enddate)의 년월일 날짜를 오늘, 어제, 내일로 넣고 테스트를 해보면 모두 내일로 출력이 되는데 혹시 잘못된 부분이 있을까요?

     

    [ list.html ]

    <block loop="$list_config=>$key,$val" >

     

    //확장변수 종료일(enddate)값 출력부분 ( 종료일 : 입력날짜 )
    <!--@if($document->getExtraValueHTML($val->idx))-->
    <span cond="$val->idx!=-1" class="ed text-muted text-xsmall margin-right-xsmall">{$val->name} : {$document->getExtraValueHTML($val->idx)}</span>
    <!--@end-->

     

                <h5 class="ed title margin-remove" cond="$val->type=='title' && $val->idx==-1">

     

    <!--//확장변수 종료일(enddate)값과 현재 날짜 비교 결과 출력 부분-->
    {@ $now = date("Ymd");}
    <!--@if($now == enddate)-->
        오늘
    <!--@elseif($now > enddate)-->
        어제
    <!--@elseif($now < enddate)-->
        내일
        <!--@end-->

     

    <!--//카테고리 + 제목 출력 부분-->
                      <strong class="ed margin-right-xsmall" cond="$document->get('category_srl')" style="color:{$category_list[$document->get('category_srl')]->color}"|cond="$category_list[$document->get('category_srl')]->color!='transparent'">[{$category_list[$document->get('category_srl')]->title}]</strong>
                 

    11111.JPEG

     

  • ? profile
    enddate는 정상적인 변수가 아닙니다. 확장변수 값과 전혀 무관한 것을 비교하고 있네요.
  • profile ?
    답변 감사합니다. ^^
  • profile ?

    웹지기님 매번 도움을 많이 받고 있습니다. 감사합니다. ^^
    여러분께서 주신 팁대로 시도를 하고 있는데 조건문이 원하는대로 출력이 잘 안되어서 계속 시도 중입니다.

  • profile ?

    <!--@if($now == 사용자정의값)-->
    오늘
    <!--@elseif($now > 사용자정의값)-->
    어제
    <!--@elseif($now < 사용자정의값)-->
    내일
    <!--@end-->

    사용자 정의값이 게시판 설정에서 입력한 사용자 정의 이름을 기재하는 게 아닌가요?

    11111.JPEG

  • ? profile
    아니죠. 사용자정의 값을 불러오는 코드를 넣으셔야죠. 지금 출력되는부분이 어떻게 불러와 출력되는지 확인해보세요.
  • profile ?
    아 알겟습니다.
  • profile
    달력을 클릭시 이전 날짜 , 오늘날자, 내일날짜 출력하고 싶은거라면 해당 달력의 입력값이 들어가는 <input의 name에 value값이 변화될때 변화되도록 코드를 만드시는 부분이 필요할 것 같습니다.
  • ?
    아래와 같이 소스 적용했습니다. 도움 주신 분들께 감사 말씀 드립니다.

    {@ $now = date("Ymd");}
    <!--@if($now == $document->getExtraEidValue('enddate'))-->
    오늘
    <!--@elseif($now > $document->getExtraEidValue('enddate'))-->
    어제
    <!--@elseif($now < $document->getExtraEidValue('enddate'))-->
    내일
    <!--@end-->
  • ? profile
    {@ $enddate = $document->getExtraEidValue('enddate')}
    이렇게 확장변수를 미리 불러와 놓고 ($now를 선언하는 곳 바로 밑에 추가하세요)
    <!--@if($now == $enddate)-->
    이렇게 비교하면 코드도 훨씬 깔끔하고 성능도 좋아집니다. (아까 작성하셨던 코드와 달리 $가 들어 있습니다)
  • profile ?
    감사합니다 많은 도움이 되었습니다.

서버에 요청 중입니다. 잠시만 기다려 주십시오...