我如何用分钟计算两次约会的时间差

How can I calculate difference between two dates with time in minutes

本文关键字:两次 约会 时间差 何用 分钟 计算      更新时间:2023-09-26

我正在使用javascript,我有这种格式的日期"2016-04-15 1230";(yyyy-MM-dd-HHmm),我想以分钟为单位计算这些日期之间的差异。

示例:

";2016-04-15 1230";以及";2016-04-15 1210";是20分钟

moment.js是一个很好的库,用于这类东西:

var firstTime = moment("2016-04-15 1230", "YYYY-MM-DD HHmm");
var secondTime = moment("2016-04-15 1210", "YYYY-MM-DD HHmm");
var difference = moment.duration(firstTime - secondTime);
console.log(difference.asMinutes()); // 20

a=新日期('2016-07-21 12:30');b=新日期('2016-07-21 12:20');

console.log((a-b)/60000);

打印10。

另请参阅如何向JavaScriptDate对象添加30分钟?

感谢@RobG纠正我的错误。这是另一个尝试。我用给出的时间示例进行了尝试,并更改了两次的分钟和小时。我确信这不是最快的方式,但它是自制的。

var first = "2016-04-15 1230"
var second ="2016-04-15 1210"

var timeDiff = function(x, y) {
// Gets first hours and cuts it out
hrs1 = first.slice(11, 13);
// Gets second hours and cuts it out
hrs2 = second.slice(11, 13);
// Gets the minutes from first time and cuts it out
min1 = first.slice(13,15);
// Gets the minutes from second time and cuts it out
min2 = second.slice(13,15);
// Subtracts and puts the difference of minutes in minDiff variable
var minDiff = min1 - min2;
// Subtracts and puts the difference of hours in hrsDiff variable  
var hrsDiff = hrs1 - hrs2;
//  If it is negative, make it positive
if(minDiff <0){
minDiff *= -1;
}
if(hrsDiff < 0) {
  hrsDiff *= -1;
}
return ["Diff in hrs: " + hrsDiff, "Difference in Minutes: " + minDiff];
}

返回:["小时差异:0","分钟差异:20"]

时间:"2016-04-15 1530"answers"2016-04-151248",

返回:["小时差异:3","分钟差异:18"]

希望这有帮助。

首先需要获得日期值的Date表示形式。

/* Helper function that parses date string (format DD-YY-MM HH:mm) 
   to create a JS Date object*/
function getDateFromDateStr(dateStr) {
  var dateParts=dateStr.split(/'D/);
  return new Date(dateParts[0],dateParts[1],dateParts[2],dateParts[3],dateParts[4]);
}
...
... 
/*Use input string to create date objects*/
var str1= "2016-04-15 1210"; 
var str2= "2016-04-15 1230";
var len = str1.length;
var date1 = getDateFromDateStr(str1.slice(0,len-2) + ":" + str1.slice(len-2));
len = str2.length;
var date2 = getDateFromDateStr(str2.slice(0,len-2) + ":" + str2.slice(len-2));

然后,你可以简单地通过使用简单的减法来获得以毫秒为单位的差异,并将结果转换为以分钟为单位:

var differenceInMinutes = (date2 - date1)/(60*1000);

注意-请记住,您应该ONLY在UTC中尝试对日期进行算术运算。或者,如果你能保证他们总是在同一时区,不会有任何夏令时。