Pregunta

Estoy tratando de obtener el número de meses entre dos fechas en mi archivo xslt, como por ejemplo:

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

Desafortunadamente, esto parece darme la cantidad de minutos entre las dos fechas en lugar de la cantidad de meses. No puedo encontrar en ninguna parte la cadena para ingresar como tercer parámetro durante meses. ¿Hay alguna referencia para esto en algún lugar? ¿O cómo encuentro el número de meses?

¿Fue útil?

Solución

El método DateDiff no admite meses.

Solo soporta años, minutos o segundos.

Para calcular la diferencia en meses, deberá hacer malabarismos matemáticos o usar un método c # en línea o escribir su propio método de extensión XSLT.

Más información sobre la línea # #

Hay muchos tutoriales para crear métodos de extensión XSLT, incluidos varios tutoriales en video en el sitio principal de umbraco.

Más información sobre las exenciones de XSLT

videos de Umbraco en las extensiones XSLT

Otros consejos

Terminé escribiendo mi propia función como Tim sugirió:

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

Estoy seguro de que podría generalizarse mejor, pero esto fue lo suficientemente bueno para mí.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top