javascript - 合并部分时刻

标签 javascript momentjs

与普通日期不同,时刻没有任何必须传递给其构造函数的必需单位。例如,这是一种完全有效的实例化时刻的方法,其中未传递的单位 defaulting to current date and 00:00 time :

 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!

但是如果我事先不知道“合并”的格式,甚至不知道它解析的单位怎么办?

最佳答案

虽然不完全支持或推荐,但类似的东西可以工作:

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);

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

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

关于javascript - 合并部分时刻,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19554916/

相关文章:

javascript - 从网站上的链接打开 Chrome 扩展程序

javascript - C3 API 加载调用后刻度线未与数据对齐

javascript - 使用 reduce to group date 来制作 date_from 和 date_to

javascript - moment().toObject() 输出格式

javascript - 使用 on 获取生成的日期并重用它 jquery

javascript - 无法在我的 js 函数中使用 parseInt 或 Number 从 HTML 获取数值

javascript - 在responseError方法中访问响应头

javascript - Jquery 在 Knockout Js 中选择等效项

javascript - 使用 moment 将日期时间字符串格式转换为本地日期时间浏览器

javascript - 按年、月、周数获取一周的开始和结束日期