Javascript 使用moment.js查找两次之间的时差
我需要找出2次(HH:MM:SS格式的时间)之间的差异 需要在几秒钟内得到差异Javascript 使用moment.js查找两次之间的时差,javascript,datetime,momentjs,Javascript,Datetime,Momentjs,我需要找出2次(HH:MM:SS格式的时间)之间的差异 需要在几秒钟内得到差异 var a = moment('21:04:59'); var b = moment('21:04:00'); a - b = 59 seconds 我试过跟随 它对我来说是日期时间格式的,但不仅仅是时间文件 var a = moment('2016-06-06T20:30:59'); var b = moment('2016-06-06T20:30:00'); console.log(a.diff(b, '
var a = moment('21:04:59');
var b = moment('21:04:00');
a - b = 59 seconds
我试过跟随
它对我来说是日期时间格式的,但不仅仅是时间文件
var a = moment('2016-06-06T20:30:59');
var b = moment('2016-06-06T20:30:00');
console.log(a.diff(b, 'seconds')) // 59 seconds
你必须在
moment
var a = moment({
h: 21,
m: 04,
s: 59
});
var b = moment({
h: 21,
m: 04,
s: 00
});
输出console.log(a.diff(b,'seconds'))
/59秒在core中,moment.js不支持纯时间数据。即使您只提供时间数据,它也会尝试将“今天”存储为日期
但你仍然可以做到
法律途径
var a = moment('21:04:59', 'HH::mm::ss');
var b = moment('21:04:50', 'HH::mm::ss');
alert(a-b); // returns miliseconds
棘手的备选方案
var dummyDate = '2016-05-05T'; // any date
var a = moment(dummyDate + '21:04:59');
var b = moment(dummyDate + '21:04:00');
console.log(a.diff(b, 'seconds'))
在将字符串解析为矩对象时,只需添加正确的格式(
'HH:mm:ss'
)
您的代码给出了一个弃用警告,因为您试图解析的字符串不是已知的ISO 8601格式。作为:
警告:浏览器对解析字符串的支持不一致。因为没有关于应该支持哪些格式的规范,所以在某些浏览器中有效的格式在其他浏览器中不起作用
对于解析ISO 8601字符串以外的任何内容的一致结果,应使用String+格式
请注意,由于您没有提供有关日期部分的信息,因此矩创建了一个具有当前日期、月份和年份的对象
下面是一个工作示例:
var a=力矩('21:04:59','HH:mm:ss');
var b=力矩('21:04:00','HH:mm:ss');
console.log(a.diff(b,'秒')代码>
如果没有日期,你怎么知道这些时间间隔是59秒?看看@pranal patev answer,他是对的答案中的代码是有效的,但是OP有一个字符串输入,所以他需要将第一个输入字符串拆分为几个部分,然后使用给定的代码。请注意,矩有一个构造函数,应该用来解析非ISO 8601格式的字符串。请注意,中没有ii
标记,您应该使用ss
。