3

Javascript では、ページ ヘッダーに現在の日付を表示する次の関数があります。

<SCRIPT language="Javascript">
    var today = new Date();
    document.write(today.toLocaleDateString());
</SCRIPT>

JSTL経由でこれを行いたいのですが、可能かどうかわかりません。これまでのところ、次のコードの断片があります。

<jsp:useBean id="date" class="java.util.Date" />
<fmt:formatDate value="${date}" type="date" pattern="EEEE, MMMM dd, yyyy"/>

日付は現在サーバー上で作成されているため、クライアントの日付を表していない可能性があります。formatDate 関数の timeZone 属性を設定できると思いますが、クライアントのタイムゾーンを取得する方法がわかりません。誰かが提案を提供できますか?

ありがとう!

4

2 に答える 2

2

サーバーが持つすべての情報は、時間やタイムゾーンに関する情報を含まない HTTP リクエストにあります。

したがって、次の 2 つのオプションがあります。

  • Cookie を使用すると、タイムゾーンを保存してサーバー側で取得できます。ここでの問題は、2 番目のリクエストがタイムゾーンの値を使用するまで待たなければならないことです。

  • AJAX を使用し、javascript と XMLHttpRequest オブジェクトを使用して、'new Date().getTimezoneOffset()' 値をサーバーにプッシュし、セッション変数に保存できます。

タイムゾーンを表示したいだけなら、オプションが多すぎるかもしれません

于 2009-05-14T17:49:24.663 に答える
1

ユーザーに情報を求めずにこれを行うことができる唯一の方法は、JavaScriptで日付をフォーマットすることです。正確には最も美しい解決策ではありません、私は追加するかもしれません

<script ...>document.write(<javascript to format the date>)</script>

または、書式設定された日付でタイム ゾーンを表示することを検討することもできます。このようにして、ユーザーは少なくともあなたが使用しているタイムゾーンを知ることができます.

于 2009-05-14T18:38:55.997 に答える