在xslt中找到2个日期之间的天差有没有那么费解的方法?如果是这样,您能为我指明正确的方向。我收到的日期格式为mm/dd/yyyy。
最佳答案
针对此使用XSLT 2.0(XPath 2.0):
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:my="my:my">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="/">
<xsl:variable name="vDate1"
select="my:dateFromUsDate(/*/d1)"/>
<xsl:variable name="vDate2"
select="my:dateFromUsDate(/*/d2)"/>
<xsl:sequence select=
"($vDate1 - $vDate2) div xs:dayTimeDuration('P1D')"/>
</xsl:template>
<xsl:function name="my:dateFromUsDate" as="xs:date">
<xsl:param name="pUsDate" as="xs:string"/>
<xsl:sequence select=
"xs:date(concat(substring($pUsDate,7,4),
'-',
substring($pUsDate,1,2),
'-',
substring($pUsDate,4,2)
)
)
"/>
</xsl:function>
</xsl:stylesheet>
当此转换应用于以下XML文档时,为:
<t>
<d1>04/06/2011</d1>
<d2>01/11/2010</d2>
</t>
产生想要的正确结果(相差450天):
450
关于xslt - 在xslt中找到2个日期之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5544762/