1

与普通日期不同,时刻没有任何必须传递给其构造函数的必需单位。例如,这是实例化时刻的一种完全有效的方式,未通过的单位默认为当前日期和 00:00 时间

 moment.utc('07:35', 'HH:mm').toISOString();
 > "2013-10-24T07:35:00.000Z" //let's just ignore the timezones for now, ok?

那么如何将部分时刻合并为一个呢?例如,我可以将.set()第一刻的小时数改为第二刻的值:

var mergee = moment.utc('07:35', 'HH:mm');
moment.utc('2015-01-01').
  set('hours', mergee.get('hours')).
  set('minutes', mergee.get('minutes')).
  toISOString();
> "2015-01-01T07:35:00.000Z" //yay!

但是如果我事先不知道“mergee”的格式,甚至不知道它解析了哪些单元呢?

4

1 回答 1

0

虽然不完全支持或推荐,但这样的事情会起作用

var m1 = moment.utc('07:35', 'HH:mm');
var m2 = moment.utc('2015-01-01');

var merged = moment.utc(m1._i + ' ' + m2._i, m1._f + ' ' + m2._f);

不一定需要空格分隔符,但它可能会防止与某些格式发生冲突。

我可以看到,如果两个时刻都包含具有不同数据的相同元素,您可能会遇到麻烦。

于 2013-10-28T00:15:57.610 回答