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 请求中,其中不包含任何有关时间或时区的信息。

所以你有两个选择:

  • 使用 cookie,您可以存储时区,然后在服务器端检索它。这里的问题是您必须等待第二个请求才能使用时区值。

  • 使用 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 回答