首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Moment.js -世界上任何地方,都可以使用相同的时区

Moment.js -世界上任何地方,都可以使用相同的时区
EN

Stack Overflow用户
提问于 2018-02-15 23:07:23
回答 2查看 1.5K关注 0票数 1

我找到了另外几个帖子,但他们并没有我想要的东西。

下面是一个场景:

中国的一位用户(尽管可能在世界任何地方)将一个日期时间输入到一个代表美国本地时间的字段中。因此,即使他们的本地机器可能是北京的1:11 AM 02/15/2018,用户正在将德克萨斯州奥斯汀的一个日期输入到date time字段。

这是我从输入字段中提取的字符串:'2018-02-14T11:11'

如何使用moment.js确保当我将'2018-02-14T11:11'转换为UTC时,UTC字符串总是反映奥斯汀时间,而不是北京时间?最后,我们将不知道用户来自哪个时区,但我们将始终知道输入的时区将位于中央标准时间。

下面发生的事情似乎是,当我使用这些转换到世界协调时,日期仍然没有反映科技委,或者他们被错误地抵消了几个小时。

moment('2018-02-14T11:11').zone("America/Chicago").format()

moment('2018-02-14T11:11').tz("America/Chicago").format()

moment('2018-02-14T11:11', 'CST').tz("America/Chicago").format()

moment('2018-02-14T11:11', "America/Chicago").tz("America/Chicago").format()

世界协调时:

moment.utc('2018-02-14T11:11').tz("America/Chicago").toISOString()

我肯定漏掉了什么。如有任何建议,将不胜感激!

提前感谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-02-16 15:06:16

你已经接近了-你需要时刻-时区加载项,然后它是这样的:

代码语言:javascript
复制
moment.tz('2018-02-14T11:11', "America/Chicago").utc().format()

让我们把它分解一下:

代码语言:javascript
复制
// create the moment with a specific time zone
var m = moment.tz('2018-02-14T11:11', "America/Chicago");

// convert to UTC
m.utc();

// format the output
var s = m.format();
票数 3
EN

Stack Overflow用户

发布于 2020-03-11 05:14:05

再加上我得到的另一个场景:

解析'2018-02-14Z'__,但忽略'Z' (UTC),只使用本地时区或指定的时区。

您可以简单地从字符串中删除'Z‘,或者执行以下操作:

moment('2018-02-14Z', 'YYYY-MM-DD')将忽略“Z”或任何不匹配的字符。

moment.tz('2018-02-14Z', 'YYYY-MM-DD', 'America/Chicago')将使用给定的时区。

当然,你一开始就不应该这么做。应该使用正确的时区。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48817730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档