На самом деле я не задаю вопрос. Я подписал stackoverflow, чтобы вернуть что-то в сообщество, которое помогло мне так много раз.Секунды времени в XSLT
Если вы используете XSLT 1.0, нет встроенных вычислений времени. Я придумал это, чтобы конвертировать секунды в минуты и часы. Я надеюсь, что это помогает кому-то!
<xsl:template name="format-duration">
<xsl:param name="value" />
<xsl:variable name="minutes" select="floor($value div 60) mod 60" />
<xsl:variable name="seconds" select="$value mod 60" />
<xsl:variable name="hours" select="floor($value div 3600)" />
<xsl:if test="$hours">
<xsl:if test="$hours < 10">
<xsl:text>0</xsl:text>
</xsl:if>
<xsl:value-of select="$hours" />
<xsl:text>:</xsl:text>
</xsl:if>
<xsl:if test="$minutes">
<xsl:if test="$minutes < 10">
<xsl:text>0</xsl:text>
</xsl:if>
<xsl:value-of select="$minutes" />
<xsl:text></xsl:text>
</xsl:if>
<xsl:if test="$minutes and $seconds">
<xsl:text>:</xsl:text>
</xsl:if>
<xsl:if test="$seconds">
<xsl:value-of select="$seconds" />
<xsl:text></xsl:text>
</xsl:if>
</xsl:template>
EDIT: У вас есть какие-либо другие методы для достижения той же?
Пожалуйста, задать вопрос и ответить на него самостоятельно. Все в порядке, чтобы принять ваши собственные ответы :) – wst
На самом деле вы подразумеваете «секунды до продолжительности». И зачем останавливаться на часах? Как насчет дней и недель? Я знаю, что месяцы и годы намного сложнее, но почему бы не попробовать их тоже? Наконец, это кажется ненужным вложением усилий - гораздо лучше использовать арифметику времени ввода, доступную в XPath 2.0 (и XSLT 2.0). –
Вместо того, чтобы размещать решение в вопросе, создайте вопрос и опубликуйте решение в качестве ответа. Автоответчик разрешен (даже рекомендуется). – ChrisF