问题标签 [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.
javascript - Moment.js 和 moment timezone 以秒、分钟和小时分隔当前时间
我在我的项目中引用了两个脚本:
现在是代码部分:
在控制台中,这将显示以下内容:
现在我只需要提取 03(小时)59(分钟)和 13(秒)的部分
但是我不知道该怎么做,有人可以帮我吗?
javascript - Momentjs 显示多个时区的相同时间
所以我试图获取不同的时区,并且我已经设置了时间,但是,所有区域都显示相同的时间。
这是我的代码:
这是我所看到的:
至于加载,我只是使用 CDN,例如:
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) 上的日期。
数据正确存储在我的数据库中。
有人可以解释为什么吗?
谢谢。
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 上编写。
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")));
工作正常
-- 不工作
使用时刻需要相同
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")));
工作正常
-- 不工作
使用时刻需要相同
momentjs - 如何添加两个 hh:mm:ss 格式并得到 hh:mm:ss
我有以下日期格式,需要一个 beloe op in momen
预计 o/p 为 2019-01-26 04:00:00
javascript - 时刻时差不会使用时刻时区,但用户计算机时间
我正在尝试显示某事的持续时间标记。开始时间始终为伦敦时间。它非常适合英格兰/同一时区的人们,但是当其他时区的人们查看持续时间时,它会显示错误的值(如果您位于英格兰后面的时区 => 负值/太小值,则时区提前 = > 值太大)。
我对此的解决方案是使用时刻时区。我正确添加了时刻时区数据我试图使用这个时区数据(代码简化并分成单独的行以便于阅读):
我希望这将获得伦敦的当前时间,并与开始时间进行比较,无论您身在何处。但是,该diff
功能似乎将时间转换为用户的计算机时间。我尝试将 格式化londonTimeNow
为字符串,但是 diff 函数不起作用。请注意,我已经调试过并且moment().tz()
工作正常,我尝试过使用其他时区,它在指定的区域中获得了正确的时间。
有任何想法吗?
编辑: 似乎我可以通过手动将'londonTimeNow'的偏移属性设置为0来使其工作。但这对我来说感觉不太正确。我更喜欢看起来不像黑客的解决方案。
javascript - 使用 moment.js 创建新的 Date 对象
我有字符串:
我在纽约(时区 -5),我想创建一个这样的 Date 对象:
我无法使用 javascript 进行转换。它将返回时区 -5。我使用 moment.js:
但是,这是不对的。请你帮助我好吗。非常感谢。
momentjs - 使用 moment/moment-timezone 将时间从其他时区转换为本地时区
我有一个 tradingHours 对象
我想要做的是根据本地时区显示本地 openTime/closeTime。
例如,我的本地时区是“澳大利亚/珀斯”,不同的是三个小时,那么 openTime 是“05:30”,closeTime 是“14:00”。
我经历了在其他帖子中找到的几个解决方案,但没有一个是我需要的。
我可以计算不同的分钟(-180),然后做一些编码来计算相应的时间。
但是,我相信必须有更好的方法来实现它。
感谢任何帮助。