0

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

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

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

4

2 に答える 2

3

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

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

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

インライン c# の詳細

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

XSLT 拡張機能の詳細

XSLT 拡張機能に関する Umbraco ビデオ

于 2009-06-17T06:49:36.683 に答える
0

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

もっと一般化できると思いますが、これで十分でした。

于 2009-06-17T14:44:44.393 に答える