Pergunta

Eu estou tentando obter o número de meses entre duas datas no meu arquivo xslt assim:

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

Infelizmente, isso parece-me dar o número de minutos entre as duas datas, em vez do número de meses. Não consigo encontrar em qualquer lugar a corda para entrar como o terceiro parâmetro para meses. Existe são referência para este em algum lugar? Ou como faço para encontrar o número de meses?

Foi útil?

Solução

O método DateDiff não suporta meses.

Ele suporta apenas anos, minutos ou segundos.

Para calcular a diferença de meses que você vai precisar fazer alguma matemática malabarismo ou usar um # método em linha c ou escreve sua própria método de extensão XSLT.

Mais informações sobre linha c #

Existem muitos tutoriais para a criação de métodos de extensão XSLT, incluindo vários tutoriais em vídeo sobre ele local umbraco principal.

Mais informações sobre XSLT exensions

vídeos umbraco em extensões XSLT

Outras dicas

acabei escrevendo minha própria função como Tim sugeriu:

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

Eu tenho certeza que ele poderia ser mais bem generalizada, mas isso era bom o suficiente para mim.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top