假设是,我有开始和结束时间。如何显示开始时间和结束时间之间的时间
给定的例子:
var startTime = '12:30 PM';
var endTime = '03:00 AM';
现在,我要与间隔5分钟,3个小时的额外时间从startTime和减1小时的时间,结束时间,以显示范围之间的时间。因此,基于给定的时间范围内的样品结果将是:
03:30 PM
03:35 PM
03:40 PM
03:45 PM
03:50 PM
03:55 PM
04:00 PM
04:05 PM
....
....
02:00 AM
显示第一次将03:30 PM
因为12:30 PM + 3 hours = 03:30 PM
上次显示将02:00 AM
因为03:00 AM - 1 hour = 02:00 AM
我使用moment.js。这里是我的代码:
var startTime = '12:30 PM';
var endTime = '03:00 AM';
var startTime2 = '12:30 PM';
var endTime2 = '05:00 PM';
console.log(intervals(startTime, endTime)); // this is not working
console.log(intervals(startTime2, endTime2)); // this is working
function intervals(start, end) {
var start = moment(start, 'hh:mm a').add(3, 'h');
var end = moment(end, 'hh:mm a').subtract(1, 'h');
var result = [];
var current = moment(start);
while (current <= end) {
result.push(current.format('hh:mm a'));
current.add(5, 'minutes');
}
return result;
}
我的问题是,如果给定的时间
var startTime = '12:30 PM';
var endTime = '03:00 AM';
将无法正常工作。它只有在给定的时间将是
var startTime2 = '12:30 PM';
var endTime2 = '05:00 PM';
我认为这个问题是因为下午至上午时段的工作。我们如何解决这个问题?请帮忙。
能否请您发表究竟心不是工作的代码片段? – void
问题是你的第一个结束时间需要额外增加1天:)所以如果结束小于开始,你需要添加一天到你的结束本地var。 – boly38
如果startTime是“05:00 PM”,endTime是“04:00 PM”,该怎么办?你能简单地假设,如果endtime小于starttime那么它是第二天? – void