2009-09-03 2 views
2

XSLT에 대한 질문이 있습니다.오늘 날짜보다 늦은 날짜의 항목을 제외하십시오.

웹 사이트에는 앞으로 진행될 이벤트를 보여주는 간단한 캘린더가 있습니다.

하지만 이벤트가 완료되면 내 목록에서 제거해야합니다. 나는 이벤트의 날짜가 오늘의 날짜를 지난 것임을 의미합니다.

모든 일정에 날짜가 첨부되어 있습니다. folowing 코드에서

봐 :

<xsl:for-each select="$currentPage//node[@template='1238']"> 

    <xsl:sort data-type="text" select="./data[@alias='dato']" order="ascending"/> 

    <div class="aktivitet_forside"> 
      ...MY EVENT CONTENT...      
    </div> 

</xsl:for-each> 

위의 코드는 = 템플릿과 함께 나에게 '1238'의 모든 이벤트를 표시하고 그 내 이벤트의 템플릿이기 때문에 그 또한 정확합니다.

하지만 모든 이벤트 전에 날짜가 포함 된 입력란이 있습니다. 이 필드는 "dato"라고합니다. 이것은 또한 이벤트를 정렬 할 번호이기 때문에 오늘 날짜가 가장 가까운 이벤트가 목록 맨 위에 표시됩니다.

은 "다토"-field의 형식은 다음과 같습니다 2009-08-30T08 : 59 : 00

"날짜"-field의 값이 날짜 지나서이다 내가보기 자동 이벤트를 제거하려면 어떻게 오늘?

오늘 날짜가 : 2009 년 9 월 3 일 인 경우 2009 년 8 월 30 일 날짜의 이벤트는 목록에 포함되지 않아야합니다.

+0

누구나 사용할 수 ? 오늘 날짜를 얻을 수 있다면 그게 도움이 될까요? –

+0

불행히도이 질문에 대한 최선의 대답은 사용중인 XSLT 프로세서에 따라 다릅니다. –

답변

2

XSLT 1.0을 사용한다고 가정하면 XSLT 프로세서가 EXSLT 확장을 지원하면 date : difference 함수를 사용할 수 있습니다. EXSLT를 기본적으로 사용할 수없는 경우에 대비하여 시나리오에 적용 할 수있는 일반 XSLT 템플릿도 있습니다.

http://www.exslt.org/date/functions/difference/index.html

편집 :

당신이 당신의 날짜 - 시간 문자열의 형식은 YYYYMMDDHHMMSS를 갖는 숫자가 될 변환 다른 간단한 버전이있을 수 있습니다. 이것은 자동으로 숫자 오름차순으로 정렬됩니다 (미래 날짜/시간은 이전 날짜보다 더 큽니다). 그런 다음 같은 방법으로 현재 날짜의 날짜 - 시간 문자열을 가져 와서 일반적인 숫자 차이를 만들어 해당 날짜가 현재 날짜 이전 또는 이후입니다.

당신의 XPath에서
<xsl:variable name="newFormat" select="translate('2009-08-30T08:59:00', '-T:', '')"/> 

Gives 20090830085900 

, 당신은 $ currDateTime 오른쪽 번역 된 값으로 설정하고 <data> 노드가 확인하는 날짜가 가정,이 작업을 수행 할 수 있습니다, 당신은 아래에 ..

<xsl:for-each select="$currentPage//node[@template='1238'][data[@alias='dato' and ((number(translate(. ,'-T:', '')) - number($now)) &gt;=0)]]"> 
+0

그 EXSLT가 무엇입니까? 나는 그것을 사용할 수 있다고 생각하지 않는다. 없이는 할 수있는 방법이 없습니까? –

+0

나 자신이 날짜 차이 함수를 작성하는 데 약간의 시간이 걸리지 만 (윤년을 계산해야합니다. 날 등) - 제공된 링크에는 일반적인 XSLT 템플릿이 포함되어 있습니다. 스타일 시트를 사용하면 한 번 살펴보고 문제에 맞게 조정할 수 있습니다. – Thiyagaraj

+0

더 간단한 해결책을 업데이트했습니다. 그러나 이것은 입력 문서 나 다른 방법으로 XSLT 스타일 시트의 현재 날짜 - 시간을 어떻게 든 얻을 수 있다고 가정합니다. – Thiyagaraj

관련 문제