Xslt代码让你过去几分钟

时间:2011-08-29 14:47:48

标签: xslt date time

我从SQL获得了一个xml。 xml有一个包含日期时间信息的节点。 xml正在使用xslt进行转换。我需要在xslt中计算过去的分钟数。

例如,在xml中我有以下节点:

2011-08-28T22:11:52.383-07:00

我需要将当前时间作为参考,并计算从xml节点中的日期开始经过的分钟数。感谢您的帮助。

由于

1 个答案:

答案 0 :(得分:2)

此转化

<xsl:stylesheet version="2.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns:xs="http://www.w3.org/2001/XMLSchema">
 <xsl:output omit-xml-declaration="yes" indent="yes"/>

 <xsl:template match="/">
   Current time: <xsl:sequence select="current-dateTime()"/>

   Elapsed minutes since: <xsl:sequence select="string(/)"/>:

   <xsl:sequence select=
   "(current-dateTime() - xs:dateTime(/) )
    div
     xs:dayTimeDuration('PT1M')
     "/>

 </xsl:template>
</xsl:stylesheet>

应用于此XML文档时

<t>2011-08-28T22:11:52.383-07:00</t>

生成想要的正确结果

   Current time: 2011-08-29T21:28:27.153-07:00

   Elapsed minutes since: 2011-08-28T22:11:52.383-07:00:

   1396.5795

解释:经过的分钟数是按两个持续时间的划分计算得出的:

  1. 现在与指定日期时间之间的时差,以及
  2. 正好一分钟的xs:dayTimeDuration值。