如何用moment.js减去2次,然后减去几分钟
How to subtract 2 times with moment.js, then subtract some minutes
我需要用moment.js减去2次(得到差),然后用这个结果减去一些额外的分钟(简单的int)。它是用来计算时间表的。几个例子:
Example #1:
Start time: 10:00 AM (represented in js as "10:00")
End time: 2:00 PM (represented in js as "14:00")
Lunch: 30 minutes ("30")
Expected result: "3:30" (10am - 2pm is 4 hours, minus 30 minutes for lunch = 3hrs 30 mins -- and I need it output as "3:30")
Example #2:
Start time: 6:15 AM (represented in js as "6:15")
End time: 4:45 PM (represented in js as "16:45")
Lunch: 0 minutes ("0")
Expected result: "10:30"
我知道moment.js可以做到这一点,但我正在努力获得预期的结果。我一直在尝试这个:
function getTimeInterval(startTime, endTime){
return moment(moment(startTime,"hh:mm").diff(moment(endTime,"hh:mm"))).format("hh:mm");
}
格式似乎正确,但我得到的值不正确。例如,我的例子#2返回的结果是"6:30"而不是"10:30"然后我如何减去午餐的int分钟
非常感谢您的帮助。
// parse time using 24-hour clock and use UTC to prevent DST issues
var start = moment.utc(startTime, "HH:mm");
var end = moment.utc(endTime, "HH:mm");
// account for crossing over to midnight the next day
if (end.isBefore(start)) end.add(1, 'day');
// calculate the duration
var d = moment.duration(end.diff(start));
// subtract the lunch break
d.subtract(30, 'minutes');
// format a string result
var s = moment.utc(+d).format('H:mm');
请密切注意格式的大小写。您使用的hh
是一个12小时的时钟。
另请参阅:获取两个日期时间之间的时间差
您可以使用diff
方法计算两个日期之间的差异,使用subtract
方法减去时间。在您的情况下:
function getTimeInterval(startTime, endTime, lunchTime){
var start = moment(startTime, "HH:mm");
var end = moment(endTime, "HH:mm");
var minutes = end.diff(start, 'minutes');
var interval = moment().hour(0).minute(minutes);
interval.subtract(lunchTime, 'minutes');
return interval.format("HH:mm");
}
相关文章:
- Javascript倒计时计时器倒计时未正确更新秒/分钟
- 发布后的应用程序在几分钟后停止更新更新面板
- Javascript模糊时间(例如'10分钟前');s精确到几秒钟
- 用于单击页面上的按钮的Javascript,每隔几分钟就会加载一次
- Javascript时钟,落后几分钟
- 在 JavaScript 中将 Unix 时间转换为“几分钟前”
- 每隔几分钟在页面之间切换一次
- Javascript计时器只有几分钟和几秒钟
- AngularJS后续$http删除将保持挂起状态几分钟
- 常量脚本 -> 更改 src iframe (1 分钟, 5分钟) + jQuery
- 节点 - MySQL 查询,需要几分钟时间,在几分钟后重复自己,然后完成原始查询
- 长时间运行的AJAX请求在几分钟后重新提交
- 如何用moment.js减去2次,然后减去几分钟
- 登录弹出窗口几分钟后,在wordpress中卸载用户
- 确定距离午夜还有几分钟
- 在Momentjs中,距离午夜还有几分钟
- 无法得到前几分钟的正确值
- 如何记录60MB以上的HTML5拖放文件的内容而不会挂起几分钟
- setTimeout在几分钟后发疯,FF6.0, Chrome 15
- 更新后的javascript文件在几分钟内没有被服务器分发