问题标签 [moment-timezone]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1266 浏览

javascript - moment-timezone.js 转换错误

我正在尝试从一个时区转换为另一个(手动)获取一个 Date 对象并通过此函数返回另一个:

一个例子是:

  • 日期日期 = 2018 年 8 月 17 日星期五 14:36:25 GMT+0200 (hora de verano de Europa central)
  • Moment sourceMoment = "2018-08-17 14:36" Moment
  • localMoment = "2018-08-17T13:36:00"

为什么墨西哥 -> 里斯本只提前一小时?据我所知,localmoment 应该是“2018-08-17T20:36:00”。

我究竟做错了什么?这似乎适用于欧洲/里斯本到欧洲/马德里,但我不知道为什么。

谢谢。

解决方案:

0 投票
1 回答
254 浏览

javascript - 世界时钟未使用 Moment.js 更新

我是 moment.js 和 timezone 插件的新手。希望这不是一个重复的问题,但我似乎在使用 moment.js 和 moment-timezone.js 的世界时钟方面遇到了一些问题,我试图在一个也使用 highcharts 的页面上制作。我正在使用 CodePen 和本地 IDE,并且似乎使用相同的代码遇到了两个不同的错误。说到这里,这里是有问题的代码:

这是jQuery:

可能并不重要,我知道它有一些重叠的问题,但这里是 css:

在 Chrome 开发人员工具上,我得到了一个moment(...).tz is not a function,而在 CodePen 上,我使用了http://momentjs.com/timezone/"Moment Timezone has no data for Europe/London. See http://momentjs.com/timezone/docs/#/data-loading/."上的地图来实际使用该位置,所以它没有真正的意义。在实际应用程序中,英国时钟根本不动。这是codepen的链接:https ://codepen.io/gabedesigns/pen/GXZPqg?editors=1111

谢谢!

0 投票
1 回答
41 浏览

javascript - 检查日期是否已经用时刻解析

我正在传递一个日期字符串,需要用moment. 问题是在某些情况下它会被解析两次,这会导致它变成undefined.

这是代码当前的样子:

当我第二次解析它时,我得到:

moment.invalid(/* 2018-09-21T05:00:00.000Z */)

这导致当我做toDate()成为undefined.

虽然第一次我会得到我所期望的:

'2019-02-01T05:00:00.000Z'

在做任何这些之前,我想检查它是否已经符合我期望的格式。我该怎么做呢?

0 投票
1 回答
1376 浏览

javascript - 从本地时区的毫秒数创建 moment.js 日期

我从服务器得到的响应是“本地”时间戳。这意味着我的本地时间表示为 UTC 毫秒,但没有 UTC 偏移量。

例如:1537747200000is Mon Sep 24 2018 00:00:00 UTC Mon Sep 24 2018 03:00:00 EEST (my local time),但在我的上下文中,这个日期实际上是Mon Sep 24 2018 00:00:00 EEST,所以 utc 值与我的时区。

如果需要,我现在想使用 moment 和 moment-timezone 来显示它。

所以我想知道的是如何创建一个新的时刻对象,"LOCAL milliseconds"?这样我会在需要时传递 1537747200000 和我的本地时区,我可以将它显示为Mon Sep 24 2018 00:00:00 EEST


我发现使用 moment timezone + utcOffset 可以解决问题,但我真的不知道这是否是一个好方法。UTC 偏移量文档是这样说的:

通过提供分钟设置 UTC 偏移量。请注意,一旦您设置了偏移量,它就是固定的并且不会自行更改(即没有 DST 规则)。如果您想要一个实际的时区 - 特定位置的时间,例如 America/Los_Angeles,请考虑 moment-timezone。


另一种方法是将时刻格式化为 ISOString moment(1537747200000).toISOString(),然后解析结果字符串,而不需要时区信息('z')。解析字符串时,可以在另一个时区解析它。moment.tz(moment(1537747200000).toISOString().slice(0, -1), tz). 但这需要我解析->格式->解析值,所以是很多额外的操作。


0 投票
2 回答
2637 浏览

javascript - 使用时刻时区 js 将日期字符串转换为带有时区的日期

我需要将日期字符串转换为 PDT(太平洋夏令时间),并且必须以本地时间显示结果日期时间。

我试过了

当我运行上面的代码时,它显示

这不是当地时间。其等效的当地时间必须不同。如何获取指定日期字符串的本地时间。

换句话说,我的意思是这样说https://forums.asp.net/t/1552114.aspx?Convert+Datetime+String+from+PDT+to+IST+local+time+datetime+string

0 投票
1 回答
1000 浏览

momentjs - moment tz 转换字符串

这应该很简单,但我花了几个小时查看文档,但仍然一无所获。我有这个字符串:

这次是 UTC,尽管它没有这么说,但我知道它是。

我想用 .tz 将其转换为 PST (America/Los_Angeles)

我试过了:

我收到“2018 年 9 月 29 日 23:50”

我尝试了许多以不同方式失败的不同组合。

我希望能够打印“2018 年 9 月 29 日,16:50”,它time以 utc 转换为 pst。

我错过了什么?

0 投票
1 回答
46 浏览

momentjs - 使用 moment-timezone 获得跨时区的时差

我得到一个代表时间的字符串和一个时区 ID。我需要确定有问题的时间是否发生在接下来的半小时内,但我正在运行的计算机与捕获字符串的时区不同。小注:如果事件发生在过去,没关系(仍然发生 === true)。只是试图将未来半小时以上发生的事情与其他事情区分开来。

这似乎应该是直截了当的,但我无处可去。

在“美国/洛杉矶”时区运行。我的“本地”是为了代表纽约时间。所以,16:39 是 的输入值then,我希望比较大约在那个时间(哦,我在开发人员本地时间大约 13:20 运行它)。所以,基本上,在上面的代码中,我想比较 16:39 和 16:20,大苹果到大苹果。我不想闯入这个;我想要一个我理解的解决方案。谢谢!

0 投票
2 回答
4339 浏览

javascript - 如何使用流星 npm 解决时刻时区导入问题

我试图在我的流星应用程序中使用 moment-timezone npm 包无济于事。如果我使用大气包,一切都运行得很好。但是,我想让 npm 包运行,因为不再维持气氛。在尝试通过 npm 运行之前,我已经从应用程序中完全删除了大气包。

当我运行meteor npm list --tree时,moment-timezone 包及其依赖项出现在底部:

meteor npm install给出:

在我使用时刻时区的文件中,我有

但是javascript控制台显示它在导入时刻和时刻时区时都失败了:

在控制台错误之后,两个单独文件中的这两行以红色突出显示

因此,在我看来,它无法解析这些软件包,但似乎它们已正确安装,并且 meteor npm install 运行良好。

该应用程序是流星1.8

我没有想法 - 任何帮助将不胜感激!

干杯

0 投票
2 回答
309 浏览

javascript - 如何根据新时区转换javascript日期

我以为我能解决这个问题,但我无法解决。

场景:
1)用户选择一个日期小部件,该小部件在本地时区传回一个日期,比如说上午 10 点“澳大利亚/悉尼”

2)然后用户选择一个不同的时区,通过标识符'澳大利亚/布里斯班'(这是一个不同的TZ,可能有夏令时等......)让我们假设它的+1小时

我想要做的是有一个函数,它接受一个代表 [10am 'Australia/Sydney'] 的 Date 对象并向我返回一个代表 [10am 'Australia/Brisbane] 的新日期,即基础 UTC 时间将移动 +1hr

我一直在纠结时刻时区,我无法让它做我想做的事。

0 投票
0 回答
149 浏览

highcharts - 如果标签与 x 轴不匹配,如何在 Highcharts 中正确绘制 UTC 数据?

我有一系列需要使用 Highcharts 绘制的数据点(UTC 日期和值),默认情况下使用 UTC。但是,数据可以位于不同的用户时区,因此在此示例中,我将其设置为纽约。我注意到,即使我的每个数据点上的工具提示都是正确的,例如 10/26 的工具提示,其中一些似乎绘制在对应于 10/27 的绘图部分中。我希望在 10/17 标记之前绘制 10/26 的所有 9 个数据点。有人在我的代码中看到问题吗?我创建了一个 JSFIFFLE 来清楚地说明这个问题。

http://jsfiddle.net/thehme/a47Lbnwr/25/

注意:在我的实际代码中,我注意到有时当我第一次加载绘图时,大部分时间 3 个数据点都在 10/27 插槽中,但如果我重新加载绘图,有时数据点会移动到10/16 日期范围。这就是使这更加混乱的原因。