2009-06-16 3 views
0

Ich versuche, die Anzahl der Monate zwischen zwei Datumsangaben in meiner xslt-Datei zu erhalten, wie so:DatDiff für Monate in Umbraco

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

Leider scheint dies mir die Anzahl der Minuten zwischen den beiden Daten zu geben, eher als die Anzahl der Monate. Ich kann nirgends die Saite finden, die für Monate als dritter Parameter eingegeben werden soll. Gibt es dafür irgendwo einen Hinweis? Oder wie finde ich die Anzahl der Monate?

Antwort

3

Die DateDiff-Methode unterstützt keine Monate.

Es unterstützt nur Jahre, Minuten oder Sekunden.

Um den Unterschied in Monaten zu berechnen, müssen Sie etwas Mathe jonglieren oder eine Inline-C# -Methode verwenden oder Ihre eigene XSLT-Erweiterungsmethode schreiben.

More info on inline c#

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

More info on XSLT exensions

Umbraco videos on XSLT extensions

0

ich meine eigene Funktion wie Tim endete Schreiben 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.