【问题标题】:How to Increment 1 day in Date using XSLT如何使用 XSLT 在日期中增加 1 天
【发布时间】:2015-05-08 09:59:33
【问题描述】:

我有一个场景,我们需要在现有日期中增加 1 天。就像在 <subscriptionDate>2015-05-06</subscriptionDate> 中一样,我想增加 1 天并将其值映射到 <terminationDate>2015-05-07</terminationDate>。如何使用 XSLT 实现这一点。因此,还应处理所有日期限制。就像如果天是 31 则按月递增。

<Subscription code="12345678R1">
      <userAccount>40000005b</userAccount>
      <offerTemplate>Test</offerTemplate>
      <subscriptionDate>2015-05-06</subscriptionDate>
      <terminationDate></terminationDate>
</Subscription>

【问题讨论】:

  • 请选择 XSLT 1.0 或 XSLT 2.0,不要同时选择两者。在这种情况下会有很大的不同。

标签: xml xslt xpath xslt-2.0


【解决方案1】:

假设 XSLT 2.0 您可以为日期添加持续时间,例如

<xsl:template match="terminationDate">
  <xsl:copy>
    <xsl:value-of select="xs:date(preceding-sibling::subscriptionDate) + xs:dayTimeDuration('P1D')"/>
  </xsl:copy>
</xsl:template>

http://xsltransform.net/pPqsHTP

【讨论】:

  • @Martin,如果格式如下,我们如何增加日期:2015-05-03T00:00:00Z
  • @omerkhalid,这是一个xs:dateTime,因此您可以使用xs:dateTime(' 2015-05-03T00:00:00Z') + xs:dayTimeDuration('P1D') 来获取一个新的xs:dateTime,其中添加了持续时间。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-12-12
  • 2011-07-05
  • 2018-02-06
  • 1970-01-01
  • 1970-01-01
  • 2016-08-21
相关资源
最近更新 更多