我如何用分钟计算两次约会的时间差
How can I calculate difference between two dates with time in minutes
我正在使用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中尝试对日期进行算术运算。或者,如果你能保证他们总是在同一时区,不会有任何夏令时。
相关文章:
- Meteor Router数据函数被调用两次
- 从MySQL数据库中获取输入数据需要两次页面刷新
- Module.start()已激发两次
- Jquery点击事件必须点击两次
- Append元素在运行两次函数后不显示
- 防止双击执行两次jQuery post请求
- 我必须点击两次才能激活任何按钮操作(离子/角度)
- 单击jQuery会激发两次
- 如何避免在树上走两次
- button.单击两次删除附加操作后不工作
- 由于$compile,Javascript(Angular)嵌套指令加载了两次
- 单击元素两次后执行操作
- AngularJs正在阻止链接被点击两次
- 为什么我的路线处理程序会触发两次
- 如何获取两次约会之间的天数
- 如何在两次约会之间进行脸书查询以获得帖子
- 用分钟计算两次约会的差异
- 计算两次约会之间有多少工作日和周末
- 如何在两次约会之间留出时间
- 我如何用分钟计算两次约会的时间差