0
我有一个格式为H:mm:ss
的存储时间值。时间可以是从0到几天的任何值。这些数据以XML标签发送并由XSL处理以显示。我想显示的格式为:在XSL中处理一个字符串中的整数
D days, HH:mm:ss (hours/minutes)
其中最后一个标签显示时间,如果HH大于0,如果分钟为0。
鉴于原HH,这可能是超过24,我知道我需要HH/24的地板才能获得天价值。然后原来的HH%24给了我剩余的时间。
我也使用xsl:when
和xsl:if
处理了分钟和小时问题。
从我被难倒的时间价值中获得数天和数小时。
编辑 到目前为止,我期待在执行下列操作:
变量声明
<xsl:variable name="time"><xsl:value-of select="time" /><xsl:variable>
<xsl:variable name="days"><xsl:value-of select="floor(substring-before(time, ':')/24)" /></xsl:variable>
<xsl:variable name="hours"><xsl:value-of select="substring-before(time, ':') mod 24" /></xsl:variable>
<xsl:variable name="minutes"><xsl:value-of select="substring-after(time, ':')" /></xsl:variable>
使用
<xsl:if test="$days > 0">
<xsl:value-of select="$days" /> days
</xsl:if>
<xsl:value-of select="$hours" />:<xsl:value-of select="$minutes" />
<xsl:choose>
<xsl:when test="$hours > 0">
hour<xsl:if test="$hours > 1">s</xsl:if>
</xsl:when>
<xsl:otherwise>
minute<xsl:if test="$minute != '01:00'">s</xsl:if>
</xsl:otherwise>
</xsl:choose>
而且澄清,采样时间会<time>26:15:00</time>
1天2点15分。
什么是实际问题?你有一段代码描述了你目前正在做的事情吗? – IAbstract 2010-05-03 17:11:50
@ dboarman-FissureStudios - 我已经更新了一段代码,希望能更清楚地说明我的问题。我需要做的是弄清楚如何在几小时,几分钟和几秒钟内获得格式化的日子,并将其操作为一个漂亮的字符串。 – justkt 2010-05-03 17:19:02