Ralf Siegel: Datumsformatierung

http://www.w3schools.com/schema/schema_dtypes_date.asp

Wie kann ich den XSLT-Prozessor einfach anweisen, eine Datumsangabe zu formatieren ? Also zum Beispiel

<sendung datum="2002-01-03"/>

soll in der Ausgabe zu "3.Januar 2002" mutieren.

<xsl:value-of select="@datum"/>

ralf ...

  1. http://www.w3schools.com/schema/schema_dtypes_date.asp

    Wie kann ich den XSLT-Prozessor einfach anweisen, eine Datumsangabe zu formatieren ? Also zum Beispiel

    <sendung datum="2002-01-03"/>

    soll in der Ausgabe zu "3.Januar 2002" mutieren.

    <xsl:value-of select="@datum"/>

    ralf ...

    Hallo,

    Teil 1 (der Tag):
    <xsl:value-of select="number(substring(@datum,9))"/>xsl:text.</xsl:text>

    Die number-Funktion ist notwendig, um die führende Null wegzukriegen.
    die 9 kommt daher, daß substring bei 1 zu zählen beginnt, nicht bei 0!

    Teil 3 (das Jahr):
    <xsl:value-of select="substring(@datum,1,4)"/>

    Teil 2 (der Monat) ist etwas aufwendiger:
    xsl:choose
     <xsl:when test="substring(@datum,6,2) =  1">Januar</xsl:when>
     <xsl:when test="substring(@datum,6,2) =  2">Februar</xsl:when>
     <xsl:when test="substring(@datum,6,2) =  3">März</xsl:when>
     <xsl:when test="substring(@datum,6,2) =  4">April</xsl:when>
     <xsl:when test="substring(@datum,6,2) =  5">Mai</xsl:when>
     <xsl:when test="substring(@datum,6,2) =  6">Juni</xsl:when>
     <xsl:when test="substring(@datum,6,2) =  7">Juli</xsl:when>
     <xsl:when test="substring(@datum,6,2) =  8">August</xsl:when>
     <xsl:when test="substring(@datum,6,2) =  9">September</xsl:when>
     <xsl:when test="substring(@datum,6,2) = 10">Oktober</xsl:when>
     <xsl:when test="substring(@datum,6,2) = 11">November</xsl:when>
     <xsl:when test="substring(@datum,6,2) = 12">Dezember</xsl:when>
    </xsl:choose>

    (vielleicht gibt es für den Monat eine einfachere Lösung, meine funktioniert zumindest)

    Die 3 Teile mußt Du dann noch in der richtigen Reihenfolge zusammensetzen, aber das schaffst Du hoffentlich.

    1. Hi Andreas, vielen Dank für deine substring-Lösung. Ich dachte es gibt vielleicht in XSL irgendwie extra eine Datums-Formatierung, so in der Art wie

      http://www.php.net/manual/en/function.date.php

      Die 3 Teile mußt Du dann noch in der richtigen Reihenfolge zusammensetzen, aber das schaffst Du hoffentlich.

      mal sehen ;o)

      ralf ...