Вычитание n часов из DateTime в XSLT

У меня есть узел в моем файле XSLT, я хочу вычесть n часов.

<xsl:element name="DocDate">
 <xsl:variable name="Date" select="'2013-11-21T11:41:25'"/>
 <xsl:variable name="Date_sub" select="substring($Date,12,19)" /> //Here i bring the hour (11:41:25) 
</xsl:element>

Но теперь я хочу вычесть n часов, например, вычесть два часа. Мне нужны такие: Час = (11:41:25) - (02:00:00) = (09:41:25). Некоторые предложения? Спасибо

Извините, я использую XSL 1.0.


person Christian    schedule 21.11.2013    source источник
comment
Я разрешаю это следующим образом: stackoverflow .com / questions / 1575111 /   -  person Christian    schedule 22.11.2013


Ответы (1)


Вы можете использовать функцию / шаблон "добавления даты" из EXSLT (http://exslt.org/date/functions/add/date.add.html).

Шаблон XSL: http://exslt.org/date/functions/add/date.add.template.xsl

Пример добавления 2 часов к текущей дате:

<xsl:stylesheet version="1.0" 
    xmlns:date="http://exslt.org/dates-and-times" 
    extension-element-prefixes="date"
    ...>

    <xsl:import href="date.add.template.xsl" />

    ...
    <xsl:call-template name="date:add">
       <xsl:with-param name="date-time"><xsl:value-of select="current-date()" /></xsl:with-param>
       <xsl:with-param name="duration">PT2H</xsl:with-param>
    </xsl:call-template>
</xsl:stylesheet>
person Schelldorfer    schedule 08.01.2015