【问题标题】:Add an hour to timezone - javascript添加一个小时到时区 - javascript
【发布时间】:2014-06-30 06:09:32
【问题描述】:

我有一个时区。说 GMT+6.30。现在我想增加/减少几个小时?怎么做!我已经尝试了所有可以在网上找到的方法。我从地球工具中得到了时区。

这是我尝试过的。

我尝试使用date 对象设置时间并使用.getTimezoneOffset();,但它没有根据我设置的时间返回。而是显示本地时区。

假设我在日期对象中设置了伦敦日期时间并使用了date.getTimezoneOffset();,并且我在时区+5,那么它显示的是+5而不是00

我也想过手动添加,这是一项很大的工作。所以我需要知道是否有任何功能可以在时区添加/减去几分钟和几小时?我还可以得到+0630 格式的时区,是否有助于轻松添加几个小时?

或者你能建议我一种从日期时间获取时区的简单方法吗?

【问题讨论】:

  • 你能提供一些代码来说明你的问题吗?
  • @OrtomalaLokni 你到底需要什么类型的代码?我需要在 +6.00 或 -5.30 等时区添加几分钟/小时。我试过的方法,失败了。找不到简单的方法来做到这一点。我想知道是否有任何简单的方法可以做到这一点,比如一些库或函数,或者我是否需要创建一个大算法来做到这一点。我不知道在这种情况下可以给出什么类型的代码。我已经分享了我试过的。
  • 这显然是一个XY Problem。请提供有关您尝试实现的目标的详细信息,而不仅仅是您尝试解决方案时遇到的困难。谢谢。
  • 可能相关(但从您问题的当前措辞很难判断):How to initialize javascript date to a particular timezone
  • @MattJohnson 我有一个时区,例如 GMT+2.30 或 GMT-11,我需要添加或减去该时区。希望我说清楚了。为什么需要这个?因为我有时区,以及夏令时的偏移量。我特别需要添加/减去时区而不是时间。为什么!因为我需要在 api 中使用它。告诉我是否需要更多解释。

标签: javascript date datetime timezone timezone-offset


【解决方案1】:

你说:

我尝试使用日期对象设置时间并使用.getTimezoneOffset();,但它没有根据我设置的时间返回。而是显示本地时区。

假设我在日期对象中设置了伦敦日期时间并使用了date.getTimezoneOffset();,并且我在时区+5,那么它显示的是+5而不是00

这是getTimezoneOffset 函数的唯一目的。它返回运行代码的计算机的本地时区偏移量,作为相关特定日期和时间的 GMT 以西的分钟数。没有办法改变这种行为。

您已询问如何从该值中增加或减少。你当然可以这样做,因为它只是一个数字。但它不会取得太大的成就。 date 对象仍将在内部使用 Unix 纪元的毫秒来表示其日期和时间,并且仍将使用运行它的计算机的本地时区来表示自己。

有一些解决方案可以在 JavaScript 中处理非本地时区,但大多数都需要使用库和外部时区数据。 I list several of these libraries here.

【讨论】:

  • 太棒了。太感谢了。我找到了使用这些库的方法。
猜你喜欢
  • 1970-01-01
  • 2019-06-12
  • 2015-10-29
  • 1970-01-01
  • 1970-01-01
  • 2015-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多