gpt4 book ai didi

javascript - MomentJS 从 UTC 转换为所需时区,而不仅仅是本地时区

转载 作者:搜寻专家 更新时间:2023-11-01 05:03:40 26 4
gpt4 key购买 nike

我正在使用 momentjs,但在尝试将 UTC 时间转换为由名称 'America/New_York' 指定的特定时区(不一定是当前用户的本地时区)时遇到问题。 This SO question类似但没有真正帮助。

我的想法是用从服务器接收到的日期创建一个 utc moment obj,然后将该 UTC 时间格式化为特定时区以供显示。我目前如何处理这个问题的一小段:

var cutoffString = '20170421 16:30:00'; // in utc
var utcCutoff = moment.tz(cutoffString, 'YYYYMMDD HH:mm:ss', '+00:00');
var displayCutoff =
moment.tz(utcCutoff.format('YYYYMMDD HH:mm:ss'), 'YYYYMMDD HH:mm:ss', 'America/New_York');

console.log('utcCutoff:', utcCutoff.format('YYYYMMDD hh:mm:ssa Z')); // => utcCutoff: 20170421 04:30:00pm +00:00
console.log('displayCutoff:', displayCutoff.format('YYYYMMDD hh:mm:ssa Z')); // => displayCutoff: 20170421 04:30:00pm +00:00

我在这里的假设是 displayCutoff 将是以“美国/纽约”时间显示的 utcCutoff 时间。但它目前与 utcCutoff 对象同时显示。我还应该提到,使用 .utc() 而不是 .tz 并在应用 .local() 后尝试操纵时区不起作用任何一个。

如有任何帮助/指导,我们将不胜感激。

最佳答案

您可以使用 moment.utc因为您的输入是 UTC 字符串。您可以使用 tz将您的 moment 对象转换为给定的时区。

请注意 tz函数将时刻对象转换为给定区域,而您正在使用 moment.tz使用给定区域构建新矩对象的解析函数。当你这样做时:

var displayCutoff = 
moment.tz(utcCutoff.format('YYYYMMDD HH:mm:ss'), 'YYYYMMDD HH:mm:ss', 'America/New_York');

您没有将 utcCutoff 转换为 'America/New_York',但您正在为 20170421 16:30:00 构建一个新的时刻对象在纽约。

这里是您的代码的更新版本:

var cutoffString = '20170421 16:30:00'; // in utc
var utcCutoff = moment.utc(cutoffString, 'YYYYMMDD HH:mm:ss');
var displayCutoff = utcCutoff.clone().tz('America/New_York');

console.log('utcCutoff:', utcCutoff.format('YYYYMMDD hh:mm:ssa Z')); // => utcCutoff: 20170421 04:30:00pm +00:00
console.log('displayCutoff:', displayCutoff.format('YYYYMMDD hh:mm:ssa Z')); // => displayCutoff: 20170421 12:30:00pm -04:00
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.11/moment-timezone-with-data-2010-2020.min.js"></script>

关于javascript - MomentJS 从 UTC 转换为所需时区,而不仅仅是本地时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43525786/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com