我正在使用javascript,并且我有这种格式的日期" 2016-04-15 1230" (yyyy-MM-dd HHmm)我想以分钟计算这些日期之间的差异。
示例:
" 2016-04-15 1230"之间的区别和" 2016-04-15 1210"是20分钟
答案 0 :(得分:2)
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
答案 1 :(得分:0)
首先,您需要获得日期值的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);
注意 - 请注意,您应该仅尝试对UTC中的日期进行算术运算。或者,如果您能保证他们总是在同一时区,并且没有任何夏令时。
答案 2 :(得分:0)
a =新日期('2016-07-21 12:30'); b =新日期('2016-07-21 12:20');
的console.log((A-B)/ 60000);
打印10。
答案 3 :(得分:0)
感谢@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];
}
返回:[&#34;小时差异:0&#34;,&#34;分钟差异:20&#34;]
随着时间的推移:&#34; 2016-04-15 1530&#34;,&#34; 2016-04-15 1248&#34;,
返回:[&#34;小时差异:3&#34;,&#34;分钟差异:18&#34;]
希望这有用。