質問
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拡張メソッドを作成する必要があります。
メインのumbracoサイトでのいくつかのビデオチュートリアルを含む、XSLT拡張メソッドを作成するための多くのチュートリアルがあります。
他のヒント
私は、ティムが提案したように、自分の関数を書くことになりました:
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);
}
より一般化できると確信していますが、これで十分でした。
所属していません StackOverflow