2013-06-05 4 views
0

에 여분의 분 값을 추가하는 나는, 어떻게 기존의 타임 스탬프

2012-01-19T21 아래로 내 입력 XML에 타임 스탬프를했다 33.085 + 01 : 00

이제 약간의 값을 추가하고 싶습니다. 분의 상이한 값은 30 -30,60 아래와 같다 -60

이 또한 수행 및 타입 X 중로서 출력을 제공하는 임의의 XSLT 함수가된다으로 DateTime

답변

2

시간을 분주하여 추가/제거 할 수 있습니다. (가 음수 인 경우 뺍니다.)

예 ...

XML 입력

<test>2012-01-19T21:36:33.085+01:00</test> 

XSLT 2.0

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:xs="http://www.w3.org/2001/XMLSchema" extension-element-prefixes="xs"> 
    <xsl:output indent="yes"/> 
    <xsl:strip-space elements="*"/> 

    <xsl:param name="minutesToAdd" select="30" as="xs:integer"/> 

    <xsl:template match="/*"> 
     <results> 
      <xsl:choose> 
       <xsl:when test="0 > $minutesToAdd"> 
        <xsl:value-of select="xs:dateTime(.) - xs:dayTimeDuration(concat('PT',abs($minutesToAdd),'M'))"/> 
       </xsl:when> 
       <xsl:otherwise> 
        <xsl:value-of select="xs:dateTime(.) + xs:dayTimeDuration(concat('PT',$minutesToAdd,'M'))"/> 
       </xsl:otherwise> 
      </xsl:choose> 
     </results> 
    </xsl:template> 

</xsl:stylesheet> 

출력

<results>2012-01-19T22:06:33.085+01:00</results> 
0
<xsl:stylesheet version="2.0" 
     xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
     xmlns:xs="http://www.w3.org/2001/XMLSchema" 
     > 

<xsl:template name="main"> 
<xsl:value-of select="xs:dateTime('2012-01-19T21:36:33.085+01:00') + 
       xs:dayTimeDuration('PT0H30M')"/> 
</xsl:template> 

</xsl:stylesheet> 

생산은
2012-01-19T22:06:33.085+01:00 
+0

도움 주셔서 감사합니다. – Abhijeet

+0

하지만 시간 스탬프에 분 단위로 다른 값을 추가하는 경우 PT0H30M은 +30 분 또는 --30을 의미합니까? 예를 들어 +20 또는 -20을 추가해야하는 경우 설명해 주시겠습니까? – Abhijeet

+0

예, 시간 구성 요소 (시간)에 대해 P 임 0 시간 30 분 –