2009-06-16 6 views
0

Je suis en train d'obtenir le nombre de mois entre deux dates dans mon fichier xslt comme ceci:DateDiff pour les mois à Umbraco

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

Malheureusement, cela semble me donner le nombre de minutes entre les deux dates plutôt que le nombre de mois. Je ne trouve nulle part la chaîne à entrer comme troisième paramètre pendant des mois. Y a-t-il une référence pour cela quelque part? Ou comment puis-je trouver le nombre de mois?

Répondre

3

La méthode DateDiff ne prend pas en charge les mois.

Il ne supporte que les années, minutes ou secondes.

Pour calculer la différence en mois, vous devrez faire un peu de jonglage mathématique ou utiliser une méthode en ligne C# ou écrire votre propre méthode d'extension XSLT.

More info on inline c#

Il y a de nombreux tutoriels pour créer des méthodes d'extension XSLT, y compris plusieurs didacticiels vidéo sur le site principal, il Umbraco.

More info on XSLT exensions

Umbraco videos on XSLT extensions

0

je fini par écrire ma propre fonction comme Tim suggéré:

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); 
} 

Je suis sûr que ça pourrait être mieux généralisée, mais cela était assez bon pour moi.

Questions connexes