xslt - 减去天数

标签 xslt date math

xslt 是否可以采用日期字段并从中减去 N 天?如果是这样,你能给我一个例子吗?

最佳答案

以下是如何在 XSLT 2.0 中执行此操作的演示:

<xsl:stylesheet version="2.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns:xs="http://www.w3.org/2001/XMLSchema">
 <xsl:output method="text"/>

 <xsl:template match="/">
  <xsl:variable name="vToday" select="current-date()"/>

  Today is: <xsl:sequence select="$vToday"/>
  30 days ago it was: <xsl:sequence select=
    "$vToday -30*xs:dayTimeDuration('P1D')"/>
  365 days ago it was: <xsl:sequence select=
    "$vToday -365*xs:dayTimeDuration('P1D')"/>
 </xsl:template>
</xsl:stylesheet>

当此转换应用于任何 XML 文档(未使用)时,会产生所需的正确结果 :
  Today is: 2010-10-07-07:00
  30 days ago it was: 2010-09-07-07:00
  365 days ago it was: 2009-10-07-07:00

关于xslt - 减去天数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3885292/

相关文章:

java - 在 Xquery 中读取文本文件

php - 按日期获取工作日

c# - 计算正多边形顶点的坐标

algorithm - 汽车停在无限的街道上 : find car and compute the complexity

c++ - 以特定值评估多项式的​​最快方法

xml - XSL - 如何判断元素是否是系列中的最后一个

xml - XSLT:检查 XML 元素是否在 xpath 中有父元素

PostgreSQL 提取() DOW : why not Date datatype in addition to timestamp?

javascript - 带 Angular 人类可读日期的时间戳

java - 为什么<xsl :value-of select ="1"/> returns 1?