【发布时间】: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 转换为本地时区,并尝试获取hour 或minute 时,不会显示预期的日期和时间。
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
相反,我刚刚添加的时间就是显示的时间。我尝试添加的时间仅在时区转换之后才包含在内,但我希望在转换之前进行添加。
【问题讨论】:
-
我在前两个步骤中没有遇到问题。只有当我得到对象的时间时,它才会给我添加到对象的确切时间,但还有下一个日期。即
4:30按照我的示例。 -
不要直接记录时刻对象。先格式化一下。否则,您只是在查看内部字段。
标签: momentjs