【问题标题】:moment timezone not giving right output时刻时区没有给出正确的输出
【发布时间】:2015-07-24 10:23:49
【问题描述】:

需要您的帮助来解决这个 moment.js 时区库。

我在代码下方运行,两者都给了我相同的输出。但我期望提供的时区有所不同。

moment.tz('2013-12-01 03:00:00', "Asia/Kolkata").format('YYYY-MM-DD HH:mm:SS');
"2013-12-01 03:00:00"

moment.tz('2013-12-01 03:00:00', "America/Los_Angeles").format('YYYY-MM-DD HH:mm:SS');
"2013-12-01 03:00:00"

我在这里做错了吗?因为我想在我的整个 php 应用程序中使用它。

moment.tz.setDefault("America/Los_Angeles");
moment('2013-12-01 03:00:00').format('YYYY-MM-DD HH:mm:SS'); 
> "2013-12-01 03:00:00" 

moment.tz.setDefault("Asia/Kolkata"); 
moment('2013-12-01 03:00:00').format('YYYY-MM-DD HH:mm:SS'); 
>"2013-12-01 03:00:00" 

上面的代码也给出了相同的输出。它也不会像预期的那样。

【问题讨论】:

  • 你还没有描述你想要做什么。例如,您是否尝试从一个时区转换到另一个时区?哪个是源头,哪个是目的地?

标签: javascript timezone momentjs


【解决方案1】:

查看文档 - 实现此目的的正确方法如下

moment('2013-12-01 03:00:00').tz("Asia/Kolkata").format('YYYY-MM-DD HH:mm:SS');
moment('2013-12-01 03:00:00').tz("America/Los_Angeles").format('YYYY-MM-DD HH:mm:SS');

【讨论】:

  • 是的。你说的对。但是,如果我再次使用 setDefault 为整个应用程序设置全局时区,那么它再次给出相同的日期,如下所示。 moment.tz.setDefault("America/Los_Angeles"); moment('2013-12-01 03:00:00').format('YYYY-MM-DD HH:mm:SS'); > "2013-12-01 03:00:00" moment.tz.setDefault("Asia/Kolkata"); moment('2013-12-01 03:00:00').format('YYYY-MM-DD HH:mm:SS'); >“2013-12-01 03:00:00”
  • 你期待什么行为?您已经设置了默认 TZ 并创建了具有特定时间和日期的时刻对象。它是使用您设置为默认值的 TZ 创建的。时间格式不会改变
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-22
  • 1970-01-01
  • 2020-10-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多