2015-01-29 19 views
1

Может кто-нибудь, пожалуйста, помогите рассчитать один день назад с заданной даты типа xsd:dateTime с использованием XSLT 2.0?Как вычесть 1 день (рассчитать день раньше) в XSLT 2.0?

Пример ввода:

<?xml version="1.0" encoding="UTF-8"?> 
<objects> 
<LastRunTime__c> 
<Last_Run_Time__c>2015-01-29T19:55:15.846Z</Last_Run_Time__c> 
</LastRunTime__c> 
</objects> 

Пример вывода:

<?xml version="1.0" encoding="UTF-8"?> 
<objects> 
<LastRunTime__c> 
<Last_Run_Time__c>2015-01-28T19:55:15.846Z</Last_Run_Time__c> 
</LastRunTime__c> 
</objects> 

Я пытался несколько вещей, но был не в состоянии получить то, что я хочу:

<xsl:template match="/"> 
<xsl:variable name="vToday" select="/*:objects/*:LastRunTime__c/*:Last_Run_Time__c"/> 
Today is: <xsl:sequence select="$vToday"/> 
1 day ago it was: <xsl:sequence select="$vToday -1*xs:dayTimeDuration('P1D')"/> 
</xsl:template> 
</xsl:stylesheet> 
+0

Я предполагаю, что это что-то делать с форматом даты. Вы пробовали ' 2015-01-28' или ' 2015-01-28-19: 55'? – yulie

ответ

3

Учитывая ваш вклад XML, XSLT это преобразование:

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet version="2.0" 
       xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
       xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <xsl:output method="text"/> 
    <xsl:template match="/"> 
    <xsl:variable name="vToday" select="/objects/LastRunTime__c/Last_Run_Time__c" 
        as="xsd:dateTime"/> 
    Today is: <xsl:value-of select="$vToday"/> 
    1 day ago it was: <xsl:value-of select="$vToday - xsd:dayTimeDuration('P1D')"/> 
    </xsl:template> 
</xsl:stylesheet> 

даст желаемый результат:

Today is: 2015-01-29T19:55:15.846Z 
    1 day ago it was: 2015-01-28T19:55:15.846Z 
+0

Чем ты! что помогло. – Abhi

+2

@Abhi Пожалуйста, не забудьте [принять этот ответ] (http://stackoverflow.com/help/someone-answers), если он решил вашу проблему. Кроме этого, вы также должны принять или иным образом отреагировать на [этот ответ] (http://stackoverflow.com/a/22692554/1987598). Благодаря! –

Смежные вопросы