xsltで昨日の日付を見つけるにはどうすればよいですか? 今日の日付を取得してから 1 日減算することを考えていましたが、カレンダーを壊さずにそれを行う方法がわかりません。
4 に答える
XSLT 2.0
メソッドを使用current-dateTime()
して現在の日付を取得できます。ただし、XSLT 1.0
XSLT 1.0 は現在の日付/時刻を取得するための標準を提供していないため、 を使用している場合は拡張関数を使用する必要があります。次のスクリプトを使用できますXSLT 1.0
<ms:script language="javascript" implements-prefix="user">
function datediff(date1, date2)
{
return Math.round(((new Date(date2)) - (new Date(date1))/1000/60);
}
</ms:script>
別のオプションは、日付関数にEXSLTの拡張機能を使用することです。
date:add(date:date(), '-P1D')
date:date()
現在の日付を取得し、それにdate:add()
期間を追加します。「-P1D」は、-1 日の期間を表します。
これらの拡張関数は XSLT 標準にはありませんが、使用している XSLT プロセッサによっては実装が見つかることに注意してください。EXSLT 関数は、 のようなプロセッサ固有のものよりも移植性が高いはずです<ms:*>
。
おそらく最善の策は、ネイティブ プログラミング言語で拡張機能を作成し、ネイティブ言語の datemath ライブラリを使用することです。その基本について詳しくは、http://www.ibm.com/developerworks/library/x-callbk/index.htmlを参照してください。
この例では Java を使用していますが、私はこれを .NET で多く扱ってきました。