【问题标题】:Get local time from UTC after setting time manually to moment object手动将时间设置为时刻对象后,从 UTC 获取本地时间
【发布时间】:2017-11-27 15:50:42
【问题描述】:

我有一个 UTC 字符串/数字(例如 1510678360) 当转换为时刻对象时,它会按预期转换为特定的日期和时间。

var momentObj = moment(1510678360, 'x');
console.log(momentObj); // Tuesday, November 14, 2017 4:52:40 PM GMT

我尝试为该对象设置特定时间,并且该时间也按预期更新。

momentObj = momentObj.set({h:22, m:30});
console.log(momentObj); // Tuesday, November 14, 2017 10:30:00 PM

当我将momentObj 转换为本地时区,并尝试获取hourminute 时,不会显示预期的日期和时间。

var momentObj = moment(1510678360, 'x');
momentObj = momentObj.set({h:22, m:30});
momentObj = moment(momentObj).tz(moment.tz.guess);
// expected: Wednesday, November 15, 2017 4:00:00 AM GMT+05:30
console.log(momentObj.get('hour')); // 22 instead of 4  
console.log(momentObj.get('minute')); // 30 instead of 00

相反,我刚刚添加的时间就是显示的时间。我尝试添加的时间仅在时区转换之后才包含在内,但我希望在转换之前进行添加。

【问题讨论】:

  • 使用moment.utc()
  • 我在前两个步骤中没有遇到问题。只有当我得到对象的时间时,它才会给我添加到对象的确切时间,但还有下一个日期。即 4:30 按照我的示例。
  • 不要直接记录时刻对象。先格式化一下。否则,您只是在查看内部字段。

标签: momentjs


【解决方案1】:

我的问题的答案是使用 moment.utc() 在问题的comments 部分建议。

【讨论】:

    猜你喜欢
    • 2014-09-15
    • 2018-07-02
    • 1970-01-01
    • 1970-01-01
    • 2015-12-09
    • 1970-01-01
    • 2016-08-27
    • 2012-10-08
    • 2018-08-21
    相关资源
    最近更新 更多