【问题标题】:Getting the TimeZone string from a Date on IE从 IE 上的日期获取 TimeZone 字符串
【发布时间】:2013-03-20 03:49:00
【问题描述】:

谷歌浏览器

new Date()
//returns Fri Mar 29 2013 17:55:25 GMT+0530 (IST)

IE8

new Date()
//returns Fri Mar 29 17:48:46 UTC+0530 2013

我需要从 IE 上的日期中提取 (IST) 部分,在 chrome 上我可以使用 dateString.substring 来提取它,但在 IE 上我不能这样做。

getTimeZoneOffset 方法以分钟为单位给出偏移量,有没有办法使用偏移量获取字符串?

或者我是否需要研究与偏移量相对应的所有时区字符串并从中创建一个对象然后使用它?

【问题讨论】:

  • 您打算如何处理缩写或偏移量?如果您的目标是将其映射回时区,那么您就走错了路。许多时区具有相同的偏移量,许多缩写可以用于多个时区。没有 100% 可靠的方法来自动检测用户的时区,但 jsTimeZoneDetect 通常足够好。如果检测不准确,您仍然希望允许您的用户更改他们的时区。如果您打算做其他事情 - 请详细说明。
  • 同样的事情,我想将缩写和时间戳一起显示给用户,然后我偶然发现了这个问题,当超过两个位置时无法决定选择哪个缩写不同的缩写共享相同的时区
  • 这是一个很好的问题,因为想要带括号的时区的正当理由是出于虚荣显示的目的。即使您使用正则表达式解析它,如果它不解析,则默认为“本地时间”。语言实现方面,2015 年他们无法决定标准化是愚蠢的。其次,它显示在 .toString() 方法中却没有自己的 getter 方法,这很可笑。但这是对实施的批评(以及每个供应商,同样如此),而不是问题。

标签: javascript internet-explorer date timezone


【解决方案1】:

我认为没有办法在标准 JS 日期对象中可靠地执行您想要的操作,但这里有一些库可以帮助您:

也许其中一个会给你你正在寻找的信息。

希望有帮助。

【讨论】:

  • 感谢您的链接,我喜欢 detect_timezone.js 通过连接它们来处理处理相似时区的不同位置的方式,但字符串非常大,无法在我的用例中显示
【解决方案2】:

这对您有帮助吗?

jsTimezoneDetect

这也可能是相关阅读:How can I determine a timezone by the UTC offset?

【讨论】:

  • 谢谢,这几乎是一个,但是当两个位置共享相同的时区时,它也不能解决问题(虽然这个问题没有包含在问题中),我会等待其他答案,如果我没有找到,这将是我的选择,这也是跨浏览器兼容的:)
  • jsTimezoneDetect 是否兼容 IE11?
猜你喜欢
  • 2019-11-19
  • 2014-12-23
  • 2020-03-27
  • 2018-07-18
  • 1970-01-01
  • 1970-01-01
  • 2012-10-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多