在xslt 1.0中格式化日期后删除前导零的最佳方法

时间:2013-10-04 19:56:22

标签: xslt xslt-1.0

我有一个日期格式模板,我将日期值传递给YYYYMMDD格式

模板如下:

<xsl:template name="formatDate">
    <xsl:param name="date" />
    <xsl:variable name="year" select="substring($date, 1, 4)" />
    <xsl:variable name="month" select="substring($date, 5, 2)" />
    <xsl:variable name="day" select="substring($date, 7, 2)" />
    <xsl:value-of select="concat($month, '/', $day, '/', $year)" />
</xsl:template>

这将返回字符串20131004为10/04/2013,这是正确的。

我需要做的是,如果$ month有一个前导零,则删除它。例如,20130930将是2013年9月30日,当时我更喜欢9/30/2013。

最有效的方法是什么?我可以在设置变量的值之前做一个选择/什么时候,但是我正在尝试以正确的方式使用xslt(我仍然试图进入它,它正在进行)。

由于

1 个答案:

答案 0 :(得分:2)

您可以使用number()函数

<xsl:variable name="month" select="number(substring($date, 5, 2))" />
<xsl:variable name="day" select="number(substring($date, 7, 2))" />

它应该删除前导零。