3

これら 2 つのテンプレート エンジンについて、かなり単純な質問があります。
未来/過去の日付、今からの固定時間、たとえば 18 か月前、または明日を作ろうとしています。

速度/フリーマーカー テンプレート (のようなもの) 内の Java 日付オブジェクトを使用してこれを実行できることはわかっていますが、 DateToolまたはフリーマーカー コアを使用$date.add(2,-18)してこれを実行したいと考えています。

これは純粋に表示上のもの (フライト予約フォームに表示されるデフォルトの日付で考えてみてください) であるため、テンプレート エンジンがこれを実行できない理由はわかりません。

それは可能ですか?もしそうなら、どのように?

4

6 に答える 6

9

私はこれが投稿が本当に古いことを知っていますが、未来の人々がまだ答えを探している場合: 日付操作は、日付をミリ秒に/から変換して行うことができます:

${(mydate?long - 18 * 86400000)?number_to_date?string("yyyy-MM-dd")}

たとえば、 から 18 日を差し引きmydateます。(86400000 は 1 日あたりのミリ秒数であることに注意してください)

于 2015-02-27T11:27:41.003 に答える
1

freemarker の場合、おそらく :日付のビルトイン

于 2010-04-09T15:01:47.203 に答える
1

Velocity Tools には、そのような方法はありません。

于 2010-04-09T15:09:57.200 に答える
1

Velocity でも実行できますが、DateTool (とにかく Velocity Extras に属します) では実行できません。

プレゼンテーション目的でのみ実用的なさまざまなユーティリティを備えた "Format" オブジェクトを用意することをお勧めします (Velocity を使用するさまざまなフレームワークがどのように "Format" オブジェクトを持っているかを確認できます)。

したがって、コードは $format.dateFromNow() のようになりますが、プレゼンテーションのアプローチはまだ存在します。

于 2010-07-01T08:06:02.113 に答える
0

FreeMarker で使用する独自のメソッドを作成できます: http://freemarker.sourceforge.net/docs/pgui_datamodel_method.html

このロジックを実行する DataAddMethod を構築します。

于 2012-08-03T09:39:13.907 に答える