DateDiff für Monate in Umbraco
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?
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.
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.