假設是,我有開始和結束時間。如何顯示開始時間和結束時間之間的時間
給定的例子:
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