Преобразовать метку времени в дату с помощью XSLT - PullRequest
1 голос
/ 11 октября 2011

У меня есть такой узел, как:

<item id="37" publish_time="1293829200">

Как преобразовать @publish_time в дату, например дд.мм.гггг ?

Я использую libxslt

1 Ответ

4 голосов
/ 17 октября 2011

Вот шаблон, который я написал для преобразования секунд в более читаемый формат.Вы можете расширить его, чтобы покрыть ваши потребности:

<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 &lt; 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 &lt; 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 &lt; 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>
...