Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用moment.js查找两次之间的时差_Javascript_Datetime_Momentjs - Fatal编程技术网

Javascript 使用moment.js查找两次之间的时差

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, '

我需要找出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, '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