如何在Web应用程序中显示浏览器的本地时间

时间:2009-10-20 04:27:06

标签: language-agnostic

我正在编写一个Web应用程序,我想在用户的本地时间页面上显示时间戳。似乎有几种方法可以做到这一点,但不清楚什么是好方法。

  1. 使用IP地址中的地理位置来获取时区 - 这似乎是很多开销。
  2. 使用javascript最终在页面上呈现日期时间 - 这似乎是很多复杂的客户端javascript。
  3. 使用javascript从用户的偏好设置中获取时区和区域设置,并将其保存在cookie中。然后,服务器可以使用它来格式化日期。服务器端代码很不错,但似乎没有很多好方法可以在第一页加载时获得它。
  4. http请求标头的任何选项?哪个?他们的浏览器有多可靠?
  5. 有关实施此方法的好方法的任何建议吗?

3 个答案:

答案 0 :(得分:2)

试试我的timeago jquery plugin 。它将UTC时间戳转换为模糊时间短语(例如“约2小时前”)。

您可以像这样输出HTML:

<abbr class="timeago" title="2008-07-17T09:24:17Z">July 17, 2008</abbr>

并且插件将其变成这样的东西:

<abbr class="timeago" title="July 17, 2008">about a year ago</abbr>

使用像这样的小jQuery:

jQuery(document).ready(function() {
  jQuery('abbr.timeago').timeago();
});

答案 1 :(得分:1)

#2不是很复杂,您甚至可以使用类似http://ejohn.org/blog/javascript-pretty-date/的内容来显示此网站上的时间(“2小时前”)。

如果你绝对反对,那么根据JS时间进行猜测(看起来比IP猜测更容易出错)让用户改变它。

答案 2 :(得分:0)

1)是的,这是开销。但是你可以在每个会话中获得一次,然后存储偏移量。

2)使用JavaScript显示日期并不复杂。查看Date对象。

我会在用户的时区从他的计算机的本地时区(使用JS)做出 guess ,然后存储它。我还允许他们更改他们的网络应用偏好中的偏移量。