Date 如何在datapower中的xslt中测试日期是否在从今天开始的180天内
我正在为datapower编写xslt,因为我得到了一个日期(付款日期)。我必须检查该日期(付款日期)是否在当前日期的180天之内 我将在以下时间获得当前日期Date 如何在datapower中的xslt中测试日期是否在从今天开始的180天内,date,xslt,xslt-1.0,ibm-datapower,Date,Xslt,Xslt 1.0,Ibm Datapower,我正在为datapower编写xslt,因为我得到了一个日期(付款日期)。我必须检查该日期(付款日期)是否在当前日期的180天之内 我将在以下时间获得当前日期 <xsl:variable name="timestamp" select="date:date-time()"/> 现在如何检查180天的情况 以下是我的xslt <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0"
<xsl:variable name="timestamp" select="date:date-time()"/>
现在如何检查180天的情况
以下是我的xslt
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:dp="http://www.datapower.com/extensions"
xmlns:date="http://exslt.org/dates-and-times"
xmlns:dpconfig="http://www.datapower.com/param/config"
extension-element-prefixes="dp"
exclude-result-prefixes="dp dpconfig"
>
<xsl:output method="xml"/>
<xsl:template match="/">
<PaymentDate><xsl:value-of select="dp:http-request-header('X-payment-date')"/></PaymentDate> (From request I am getting payment date)
<xsl:variable name="timestamp" select="date:date-time()"/> (From here I am getting present date)
<xsl:if (this is what I am confused)
(根据请求,我将获得付款日期)
(从这里我得到当前日期)
在XSLT 1.0中计算日期差:
应用于以下输入XML时:
<input>
<originalDate>2013-09-15</originalDate>
</input>
2013-09-15
结果将是:
<?xml version="1.0" encoding="UTF-8"?>
<output>
<difference>179</difference>
</output>
179
如果今天执行转换,2014-03-13。IBM Datapower提供了对现有EXSLT功能的扩展。有一个名为“difference”的函数,其签名如下
差异()
返回第一个日期和第二个日期之间的持续时间。
语法
日期:差异(开始日期时间、结束日期时间)
您可以利用此功能查找日期差异。有关datapower中提供的扩展功能的更多信息,请参阅下面的链接。转到第5章,查找用于操纵“日期-时间”的函数
-AjitabhDataPower支持日期:差异
差异()
返回第一个日期和第二个日期之间的持续时间。
语法
日期:差异(开始日期时间、结束日期时间)
您可以将当前日期作为结束日期时间传递,该日期要检查为开始日期时间
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs"
xmlns:date="http://exslt.org/dates-and-times" version="1.0">
<!--<xsl:key name="lang" match="element" use="@language"></xsl:key>-->
<xsl:template match="/">
<xsl:variable name="date1" select="date:date-time()"/>
<xsl:variable name="date2" select="'2013-09-15'"/>
<output>
<difference>
<xsl:value-of select="translate(date:difference($date2, $date1),'PD','')"/>
</difference>
</output>
</xsl:template>
</xsl:stylesheet>
从何处获取的日期应在180天内?请编辑您的问题,1包括一个XML输入,2发布一个完整的XSLT样式表,3解释您希望输出是什么样子。这个答案让我省去了很多麻烦!!投票不够
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs"
xmlns:date="http://exslt.org/dates-and-times" version="1.0">
<!--<xsl:key name="lang" match="element" use="@language"></xsl:key>-->
<xsl:template match="/">
<xsl:variable name="date1" select="date:date-time()"/>
<xsl:variable name="date2" select="'2013-09-15'"/>
<output>
<difference>
<xsl:value-of select="translate(date:difference($date2, $date1),'PD','')"/>
</difference>
</output>
</xsl:template>
</xsl:stylesheet>