Question

J'essaie d'obtenir le nombre de mois entre deux dates dans mon fichier xslt comme suit:

<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 trouver le nombre de mois?

Était-ce utile?

La solution

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

Il ne prend en charge que les années, les minutes ou les secondes.

Pour calculer la différence en mois, vous devrez jongler avec les mathématiques, utiliser une méthode inline c # ou écrire votre propre méthode d’extension XSLT.

Plus d'informations sur le c # en ligne

Il existe de nombreux tutoriels pour la création de méthodes d’extension XSLT, y compris plusieurs tutoriels vidéo sur le site principal de Umbraco.

Plus d'informations sur les extensions XSLT

Vidéos Umbraco sur les extensions XSLT

Autres conseils

J'ai fini par écrire ma propre fonction comme suggéré par Tim:

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 cela pourrait être mieux généralisé, mais cela me suffisait.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top