当前位置: 首页 > 知识库问答 >
问题:

如何使JavaScript的新Date()函数在不同时区显示相同?[副本]

仉宸
2023-03-14

我正在为我的web应用程序构建一个具有特色的时间线,我正在通过使用以下方法来操作添加到时间线中的元素:

var time_going = new Date(data2.time_going * 1000),
    time_going_hour = time_going.getHours(),
    time_going_minutes = time_going.getMinutes(),
    left_position = (time_going_hour * width_by_hour) + (time_going_minutes * width_by_minute);

问题是left_position根据您当前的时区是不同的,因为新的date函数返回不同的信息。有没有强制时间总是与纽约时间一致?

data2.time_going在Unix时间戳中,例如设置为1368687333。

共有1个答案

聂炜
2023-03-14

您可能已经知道,UNIX“纪元”时间没有时区。这使得处理UNIX时间戳变得很容易,因为您不必跟踪它们所处的时区。

类似地,JavaScript日期对象与时区无关。当您调用gethours()时,该方法正在为当前计算机的时区执行时间偏移数学运算。

因此,与其总是使用纽约时间,不如使用UTC时区来计算所有的时间。换句话说,不使用与区域设置相关的gethours()getminutes(),而是尝试使用getutchours()getutcminutes()。只要使用UNIX Epoch time初始化Date对象,这些方法将始终返回相同的值,而不管它们运行的计算机的时区是什么。

 类似资料:
  • 不是“get timezoneoffset”函数,而是使用“new Date()”函数,我也知道“get timezoneoffset”函数,但是这个函数根据哪个用户在哪个时区自动获取时区。

  • 我正在试图理解为什么下面的代码会像它那样运行。具体而言,为什么第一个表达式会输出的完整和最终版本?我意识到这和吊装有关(也许?)或者其他一些我没有完全理解的概念。只是在网上搜索这个是很有挑战性的,因为我没有合适的词库来搜索我想知道的东西。 我在为自己编写代码时发现了这一点,其中我希望通过for-loop看到对象在每次迭代时的状态。我很惊讶地看到输出到控制台的对象在每一个回合都是一样的;该状态是整个

  • 如何让不同的分类展示不同的数据 我想让id为1的 显示在全部栏目下 id为2显示吃吃喝喝栏目下 因该怎么改

  • 问题内容: 我正在将Enzyme与酶转json一起使用来对React组件进行Jest快照测试。我正在测试一个组件的浅表快照,该组件使用当前范围(例如)渲染一个显示字段,并允许两个组件选择一个值。这意味着我的快照包含了我传递给组件的s 以及它们自己解析的文本表示形式。在测试中,我使用创建了一些固定的日期。 当我在不同的时区中运行测试时,这会生成不同的快照 ,因为构造函数会在本地时区中创建日期。例如,

  • 保留两位小数,小数部分相同,结果不一致 输出如上所述,应与小数部分相同。

  • 问题内容: 我看了一个使用此代码的代码示例: 但是,当我使用Eclipse时,我收到一条消息,提示它已过时,我想知道是否还有另一种方法可以在单击按钮时在CardLayout中显示不同的卡片?下面是我的CardLayout类的代码。如果代码的某些部分不正确,也可以提出建议。谢谢! 问题答案: 我看不到Java7 show(容器父代,字符串名称)或Java6 show(容器父代,字符串名称)已过时 如