问题标签 [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 投票
2 回答
1006 浏览

javascript - Moment.js 和 moment timezone 以秒、分钟和小时分隔当前时间

我在我的项目中引用了两个脚本:

现在是代码部分:

在控制台中,这将显示以下内容:

现在我只需要提取 03(小时)59(分钟)和 13(秒)的部分

但是我不知道该怎么做,有人可以帮我吗?

0 投票
4 回答
1078 浏览

javascript - Momentjs 显示多个时区的相同时间

所以我试图获取不同的时区,并且我已经设置了时间,但是,所有区域都显示相同的时间。

这是我的代码:

这是我所看到的:

图片

至于加载,我只是使用 CDN,例如:

0 投票
1 回答
418 浏览

javascript - 更改时刻时区不反映到 .toDate()

Ngx Bootstrap Datepicker返回一个 JS Date 对象。
我有一个自定义时间选择器,它返回一个格式为HH:mm.

我现在需要做的是创建一个带有选定日期、选定时间和特定时区的 JS 日期对象。
我正在尝试使用时刻(因为我们将它用于整个应用程序中的日期),但我没有预期的行为。

我试着:

*timeZone根据用户变化,不是浏览器的原因,是用户的一个属性,所以不能设置moment.tz.setDefault(...);

我面临的.toDate是返回我当前的时区事件,尽管它在时刻对象中出现了我的不同时区。 在此处输入图像描述

为什么它会这样工作,什么是我需要的工作实现?

Ps:console.log(specificMoment.format());返回错误的 timeZone 为好2018-12-20T23:00:30-02:00

编辑
结果使用
const specificMoment = moment(date).tz(timeZone);
然后
return specificMoment.toDate()
“工作”。它返回一个 Date 对象2018-12-21T05:00:00.323-0200,它是具有指定时区 (GMT -8:00) 但显示在我当前时区 (GMT -2:00) 上的日期。
数据正确存储在我的数据库中。
有人可以解释为什么吗?

谢谢。

0 投票
2 回答
3293 浏览

javascript - 如何使用时刻时区与 C# TimeZoneInfo 进行映射?

我需要制造在用户选择的时区工作的错觉。服务器和客户端代码坚持使用javascript日期的问题。因此,为了达到要求,我已经从 utc 手动映射到客户端的日期:

我正在添加/减去 browserUtcOffset,因为当日期在服务器和客户端之间移动时,它会由浏览器自动添加/减去。

它运行良好,但此解决方案缺少对 DST 的处理。我想检查该日期的 DST 是否有效,然后在需要时添加 DST 偏移量。

这里的 C# 代码,可以做到这一点:

isDST在 momentjs 中找到了,当我将 Windows 本地时区设置为 CST 并检查moment([2011, 2, 14]).isDST();浏览器控制台时,我看到了真实情况。如何查看isDST取决于浏览器本地时间。

下一步尝试像我在 C# 中所做的那样使用 moment-timezone 来做某事。不幸的是,我不明白如何实现这一点。作为起点,我遇到的第一个问题是:UTC time, Base offset(-360 in C# sample), timezone name: Central Standard Time,但是时刻时区中的时区是不同的。

moment.tz.names().map(name => moment.tz.zone(name)).filter(zone => zone.abbrs.find(abbr => abbr === 'CST') != null)此代码返回 68 个时区。 在此处输入图像描述

为什么他们每个人都有很多缩写?直到是什么意思?我只想检查所选时区的UTC时间,即“中央标准时间”,夏令时是否有效。再看一次 C# 示例 :)

该应用程序已在 angularjs 1.6.3 上编写。

0 投票
1 回答
91 浏览

javascript - 如何在时刻以小时格式减去两个小时格式

如何在循环中增加先前的值:

假设第一次迭代持续时间值为 10,第二次迭代持续时间值为 30,它应该添加为 40。

在 C# 中,效果很好。

我已经试过了。

让 n = moment.duration(moment("00:00:00", "HH:mm:ss").diff(moment("18:00:00", "HH:mm:ss")));

控制台.log(n);

在此处输入图像描述

我需要以下格式。18:00:00

http://jsfiddle.net/5103y2du/4/

Atlast 我找到了解决方案,但解决方案并不好。

让 n = moment.duration(moment("00:00:00", "HH:mm:ss").diff(moment("18:00:00", "HH:mm:ss")));

工作正常

-- 不工作

使用时刻需要相同

0 投票
1 回答
158 浏览

momentjs - 如何立即区分两个 HH:mm:ss 格式

它产生 00:00:00 作为 o/p 但我需要 -18:00:00 如何进行格式化。

在 C# 中,效果很好。

我已经试过了。

在此处输入图像描述

我需要以下格式。18:00:00

http://jsfiddle.net/5103y2du/4/

Atlast 我找到了解决方案,但解决方案并不好。

让 n = moment.duration(moment("00:00:00", "HH:mm:ss").diff(moment("18:00:00", "HH:mm:ss")));

工作正常

-- 不工作

使用时刻需要相同

0 投票
1 回答
60 浏览

momentjs - 如何添加两个 hh:mm:ss 格式并得到 hh:mm:ss

我有以下日期格式,需要一个 beloe op in momen

预计 o/p 为 2019-01-26 04:00:00

0 投票
2 回答
256 浏览

javascript - 时刻时差不会使用时刻时区,但用户计算机时间

我正在尝试显示某事的持续时间标记。开始时间始终为伦敦时间。它非常适合英格兰/同一时区的人们,但是当其他时区的人们查看持续时间时,它会显示错误的值(如果您位于英格兰后面的时区 => 负值/太小值,则时区提前 = > 值太大)。

我对此的解决方案是使用时刻时区。我正确添加了时刻时区数据我试图使用这个时区数据(代码简化并分成单独的行以便于阅读):

我希望这将获得伦敦的当前时间,并与开始时间进行比较,无论您身在何处。但是,该diff功能似乎将时间转换为用户的计算机时间。我尝试将 格式化londonTimeNow为字符串,但是 diff 函数不起作用。请注意,我已经调试过并且moment().tz()工作正常,我尝试过使用其他时区,它在指定的区域中获得了正确的时间。

有任何想法吗?

编辑: 似乎我可以通过手动将'londonTimeNow'的偏移属性设置为0来使其工作。但这对我来说感觉不太正确。我更喜欢看起来不像黑客的解决方案。

0 投票
2 回答
3894 浏览

javascript - 使用 moment.js 创建新的 Date 对象

我有字符串:

我在纽约(时区 -5),我想创建一个这样的 Date 对象:

我无法使用 javascript 进行转换。它将返回时区 -5。我使用 moment.js:

但是,这是不对的。请你帮助我好吗。非常感谢。

0 投票
1 回答
144 浏览

momentjs - 使用 moment/moment-timezone 将时间从其他时区转换为本地时区

我有一个 tradingHours 对象

我想要做的是根据本地时区显示本地 openTime/closeTime。

例如,我的本地时区是“澳大利亚/珀斯”,不同的是三个小时,那么 openTime 是“05:30”,closeTime 是“14:00”。

我经历了在其他帖子中找到的几个解决方案,但没有一个是我需要的。

我可以计算不同的分钟(-180),然后做一些编码来计算相应的时间。

但是,我相信必须有更好的方法来实现它。

感谢任何帮助。