Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Date 如何在datapower中的xslt中测试日期是否在从今天开始的180天内_Date_Xslt_Xslt 1.0_Ibm Datapower - Fatal编程技术网

Date 如何在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"

我正在为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"
    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章,查找用于操纵“日期-时间”的函数


-Ajitabh

DataPower支持日期:差异

差异()

返回第一个日期和第二个日期之间的持续时间。 语法

日期:差异(开始日期时间、结束日期时间)

您可以将当前日期作为结束日期时间传递,该日期要检查为开始日期时间

<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>