我有节点:
<item id="37" publish_time="1293829200">
如何将@publish_time转换为 dd.mm.yyyy 之类的日期?
我正在使用libxslt
答案 0 :(得分:4)
这是我写的一个模板,用于将秒转换为更易读的格式。您可以扩展它以满足您的需求:
<xsl:template name="convertSecsToTimeStamp">
<xsl:param name="seconds"/>
<xsl:variable name="hours" select="floor($seconds div (60 * 60))"/>
<xsl:variable name="divisor_for_minutes" select="$seconds mod (60 * 60)"/>
<xsl:variable name="minutes" select="floor($divisor_for_minutes div 60)"/>
<xsl:variable name="divisor_for_seconds" select="$divisor_for_minutes mod 60"/>
<xsl:variable name="secs" select="ceiling($divisor_for_seconds)"/>
<xsl:choose>
<xsl:when test="$hours < 10">
<xsl:text>0</xsl:text><xsl:value-of select="$hours"/><xsl:text>hh</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$hours"/><xsl:text>hh</xsl:text>
</xsl:otherwise>
</xsl:choose>
<xsl:choose>
<xsl:when test="$minutes < 10">
<xsl:text>0</xsl:text><xsl:value-of select="$minutes"/><xsl:text>mm</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$minutes"/><xsl:text>mm</xsl:text>
</xsl:otherwise>
</xsl:choose>
<xsl:choose>
<xsl:when test="$secs < 10">
<xsl:text>0</xsl:text><xsl:value-of select="$secs"/><xsl:text>ss</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$secs"/><xsl:text>ss</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:template>