Frage

Ich versuche, die Anzahl der Monate zwischen zwei Datumsangaben in meiner xslt-Datei zu erhalten wie folgt:

<xsl:variable name="now" select="umbraco.library:CurrentDate()"/>
<xsl:value-of select="umbraco.library:DateDiff('2010-12-01', $now, 'm')" />

Leider ist dies scheint mir die Anzahl der Minuten zwischen den beiden Daten zu geben, anstatt die Anzahl der Monate. Ich kann nicht überall die Zeichenfolge eingeben als dritter Parameter für Monate finden. Gibt es sind Referenz für diese irgendwo? Oder wie finde ich die Anzahl der Monate?

War es hilfreich?

Lösung

Die DateDiff Methode nicht unterstützt Monate.

Es unterstützt nur Jahre, Minuten oder Sekunden.

Um die Differenz in Monaten zu berechnen Sie brauchen etwas Mathe Jonglieren zu tun oder eine Inline c # Methode verwenden oder eigene XSLT-Erweiterungsmethode schreiben.

Weitere Informationen über Inline c #

Es gibt viele Tutorials zur Erstellung von XSLT-Erweiterungsmethoden, darunter mehrere Video-Tutorials auf ihn Haupt umbraco Website.

Weitere Informationen über XSLT exensions

Umbraco Videos auf XSLT-Erweiterungen

Andere Tipps

ich am Ende meine eigene Funktion zu schreiben wie Tim vorgeschlagen:

public static int MonthDiff(string date1, string date2)
{
    DateTime dt1 = DateTime.Parse(date1);
    DateTime dt2 = DateTime.Parse(date2);

    return ((dt2.Year - dt1.Year) * 12) + (dt2.Month - dt1.Month);
}

Ich bin sicher, dass es besser verallgemeinert sein könnte, aber das war gut genug für mich.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top