質問

xsltファイルで2つの日付間の月数を取得しようとしています。

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

残念なことに、これは月数ではなく、2つの日付間の分数を与えてくれるようです。月の3番目のパラメーターとして入力する文字列がどこにも見つかりません。これに関する参照はどこかにありますか?または、月数を見つけるにはどうすればよいですか?

役に立ちましたか?

解決

DateDiffメソッドは月をサポートしていません。

年、分、秒のみをサポートします。

月の差を計算するには、数学のジャグリングを行うか、インラインc#メソッドを使用するか、独自のXSLT拡張メソッドを作成する必要があります。

インラインc#の詳細

メインのumbracoサイトでのいくつかのビデオチュートリアルを含む、XSLT拡張メソッドを作成するための多くのチュートリアルがあります。

XSLT拡張機能の詳細

XSLT拡張機能のUmbracoビデオ

他のヒント

私は、ティムが提案したように、自分の関数を書くことになりました:

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

より一般化できると確信していますが、これで十分でした。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top