首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MomentJS .date()问题

MomentJS .date()问题
EN

Stack Overflow用户
提问于 2015-05-19 19:57:16
回答 1查看 76关注 0票数 0

谁能给我解释一下为什么moment("2013-04-22 00:00:00+07:00").date()返回21

例如,moment("2013-04-22 00:00:00+02:00").date()返回22

我希望在不考虑构建moment对象的字符串中的任何时区信息的情况下获得日期,即在此特定示例中始终为22。

EN

回答 1

Stack Overflow用户

发布于 2015-05-19 20:40:34

我想我已经弄明白了:moment("iso8601_string")将该字符串解析/转换为本地时间。在我的例子中,我处于UTC+2时区,所以解析包含"+02:00" (或"+01:00")的字符串,然后调用.date()返回22,因为moment对象中存储的时间与我的本地时间匹配。

但是,当使用"+07:00"解析字符串时,moment对象中存储的时间将是我的本地时间,在这种情况下,日期实际上与前一天不同。

我认为我最初的需求也是令人费解的,并且基于一个不正确的假设。我的用例是,我从某个UI小部件获得的datetime总是作为date+time,但我只需要日期。编写单元测试来解析包含"+07:00"的字符串会导致日期“不正确”。然而,这是一个错误的假设,因为(至少在我的用例中)来自UI小部件的datetime将始终是本地时间,因此代码永远不会解析包含"+07:00"的字符串。

我不确定我最初所说的用例是否存在于现实世界中:

  • 您将获得一个包含另一个时区中的日期的字符串
  • 您需要从中提取日期,但在该日期所在的时区(为什么?)

我猜通常无论何时从远程获取日期,约定总是获取UTC,这样参考点就明确了,您可以在本地进一步转换它。因此,当您在随机时区中获取日期并需要该时区中的日期时,这种情况可能并不常见。尽管如此,作为一个学术问题,我不知道在这种情况下我如何能够从中获得日期:)

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

https://stackoverflow.com/questions/30324981

复制
相关文章

相似问题

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