0

当页面在 portlet 中加载时,如何获取浏览器/客户端时间。我需要做一个基于客户端时区的算法,这意味着在 portlet 的渲染阶段我需要获取浏览器的时区。有可能吗,如果可以的话怎么办?

任何帮助是极大的赞赏。

谢谢,迈克尔

4

2 回答 2

1

我认为 HTTP 请求不包含有关浏览器/客户端时间的任何信息,因此您需要以某种方式使用 javascript 来解决这个问题。我在这里找到了一篇关于这个问题的文章。

根据具体情况,我可以想到几种可能使用的策略:

  1. 在前一个门户页面上使用 javascript 获取客户端时间,并通过表单提交将其包含在对目标页面的请求中。
  2. 在初始页面加载时将 portlet 视图设置为“请稍候”消息,并通过 AJAX 请求将客户端时间发送到服务器。当请求返回时,根据需要更新 portlet 视图。如果您正在编写 JSR 286 portlet,该 portlet 可以实现 ResourceServingPortlet 接口以提供一个挂钩(即 serveResource 方法)来呈现标记片段。有关更多信息,您可以在此处下载 JSR 286 规范(查看第 14 章“通过 Portlet 提供片段”)。
  3. 使用 portlet 首选项为 portlet 设置默认时区。如果他们愿意,让用户选择不同的时区。这使您可以完全控制您支持的时区,而完全不依赖于浏览器或 javascript。Portlet 首选项在上面 #2 中提到的规范的第 17 章中进行了描述。
于 2009-11-24T12:17:29.857 回答
0

I don't know portlet, but if it has a javascript interface, perhaps call dateObject.getTimezoneOffset()?

于 2009-11-12T05:13:20.760 回答