在浏览器中显示带有时区的客户端机器日期和时间
Display client machine date and time with timezone in browser
在我的JSP页面中,我试图用时区显示本地日期和时间。它可以是JavaScript, jQuery或JSTL,随便哪个。
我试过<fmt:formatDate value="<%= new java.util.Date() %>" pattern="MMM d, hh:mm a z"/>
,但时间是CDT,即使我把我的时区改为东部。
我需要这个图案中的May 22, 10:34 AM EDT
。
任何建议吗?
如果你想知道客户端相对于GMT/UTC的时区,你可以这样做:
var d = new Date();
var tz = d.toString().split("GMT")[1].split(" (")[0]; // timezone, i.e. -0700
如果您想要时区的实际名称,您可以试试:
var d = new Date();
var tz = d.toString().split("GMT")[1]; // timezone, i.e. -0700 (Pacific Daylight Time)
更新1 根据第一个注释,您还可以使用d.p ettimezoneoffset()从UTC获得以分钟为单位的偏移量。不过有几个问题。
返回的分钟数的符号(+/-)可能与您期望的相反。如果你比UTC晚8小时,它将返回480而不是-480。有关更多文档,请参阅MDN或MSDN。它实际上并没有返回客户端报告的时区,就像我给出的第二个例子一样。当前距离UTC的分钟偏移量。所以它会根据夏令时而变化。更新2
虽然字符串分割的例子可以工作,但它们读起来可能令人困惑。这是一个regex版本,应该更容易理解,可能更快(两种方法都非常快)。
如果你想知道客户端相对于GMT/UTC的时区,你可以这样做:
var gmtRe = /GMT(['-'+]?'d{4})/; // Look for GMT, + or - (optionally), and 4 characters of digits ('d)
var d = new Date().toString();
var tz = gmtRe.exec(d)[1]; // timezone, i.e. -0700
如果您想要时区的实际名称,请尝试:
var tzRe = /'((['w's]+)')/; // Look for "(", any words ('w) or spaces ('s), and ")"
var d = new Date().toString();
var tz = tzRe.exec(d)[1]; // timezone, i.e. "Pacific Daylight Time"
您可以使用Javascript日期对象获取客户端日期。
var clientDate = new Date();
//for day clientDate.getDate();
//for month client.getMonth()
然后使用
得到与UTC的差值clientDate.getTimezoneOffset();
//This returns -120 for GMT+2,
- 使用c#中的邮件附件javascript在客户端机器上获取服务器端导出的crystal报告路径.下面的
- javascript zip文件夹和客户端机器中的子文件夹
- 获取客户端机器's使用Asp/Javascript的精确IP地址(非公共IP)
- 希望将客户端生成的二进制文件保存到客户端机器
- 客户端包括在本地机器上
- 使用JavaScript/Jquery创建文本文件下载/更新到本地客户端机器中的特定位置
- 如何从Adobe Interactive表单中获取客户端机器的IP地址
- 如何读取客户端的机器 IPV4 地址
- 如何获得客户端机器's操作系统'的用户友好名称
- 从服务器下载PDF到客户端机器
- 客户端机器唯一ID
- 下载一个zip文件并暂时保存在客户端机器上
- 检测是否在客户端机器上注册了uri协议
- 是否可以使用javascript在客户端机器本地保存JSON ?
- 如何使用jquery触发打印请求到客户端机器
- 在客户端机器上使用applet创建和写入文件时出错
- 如何使用javascript发现客户端机器安装了flash播放器
- 如何获取客户端的用户名,在JS或php中登录到客户端机器
- 如何在MVC中使用C#中的本地IP地址扫描客户端机器的开放端口
- 如何将融合图(在网页中)保存为客户端上的图像's机器