2013-06-05 29 views

回答

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分鐘 –

相關問題