Xml 在XSLT v 1.0中将秒转换为hh:mm:ss

Xml 在XSLT v 1.0中将秒转换为hh:mm:ss,xml,xslt,Xml,Xslt,我有一列返回总秒数。比如说 266 我想把266秒显示为 00:04:26 我在XSLT中就是这样做的: 然而,我的输出是 00:00:04 关于如何解决此问题,您有什么建议吗?您的数学错误,“00:00:00”不是有效的格式字符串。试着这样做: <xsl:variable name="seconds" select="CAudioFile/CRI/Duration" /> <xsl:value-of select="format-number(floor($seconds

我有一列返回总秒数。比如说

266

我想把266秒显示为

00:04:26

我在XSLT中就是这样做的:

然而,我的输出是

00:00:04


关于如何解决此问题,您有什么建议吗?

您的数学错误,“00:00:00”不是有效的格式字符串。试着这样做:

<xsl:variable name="seconds" select="CAudioFile/CRI/Duration" />

<xsl:value-of select="format-number(floor($seconds div 3600), '00')" />
<xsl:value-of select="format-number(floor($seconds div 60) mod 60, ':00')"/>
<xsl:value-of select="format-number($seconds mod 60, ':00')"/>

您的数学错误,“00:00:00”不是有效的格式字符串。试着这样做:

<xsl:variable name="seconds" select="CAudioFile/CRI/Duration" />

<xsl:value-of select="format-number(floor($seconds div 3600), '00')" />
<xsl:value-of select="format-number(floor($seconds div 60) mod 60, ':00')"/>
<xsl:value-of select="format-number($seconds mod 60, ':00')"/>

迈克尔,虽然这很好用,但我想对此做一点小小的改变。例如,如果是441秒,它现在将显示为0:07:21。我是否可以将小时显示为“00”而不是“0”。当前输出仅显示一个零。@user1426542我认为解决方案是显而易见的:在小时上使用格式数字,就像在分钟和秒上使用格式数字一样。Michael,虽然这工作得很好,但我想对此稍作修改。例如,如果是441秒,它现在将显示为0:07:21。我是否可以将小时显示为“00”而不是“0”。当前输出仅显示一个零。@user1426542我认为解决方案很明显:在小时上使用格式数字,就像在分钟和秒上使用格式数字一样。