JSFiddle - React, Tailwind, and code Playground

HTML

<label id="lblTime"></label>

JavaScript

var startTime = '03:00 AM';
var newStartTime = startTime;
var endTime = '05:00 AM';
var minutes=0;
var hours=0;
var timeArray=[];
var ampm='';
var executing=true;
while(executing) {
	timeArray.push(newStartTime);
	minutes = Number(minutes) + 30;
	hours = newStartTime.split(' ')[0].split(':')[0]
	ampm= newStartTime.split(' ')[1];
	if(minutes > 59) {
		if(Number(hours) > 12) {
			ampm = newStartTime.split(' ')[1] == 'AM'?'PM':'AM';
			hours = '01';
		}
		else {
			hours = Number(hours) + 1;
			if(hours.toString().length ==1) {
				hours = '0' + hours;
			}
		}
		minutes = minutes - 60;
	}
	if(minutes.toString().length ==1) {
				minutes = '0' + minutes;
	}
	newStartTime = hours + ':' + minutes+' ' +ampm;
	if(Number(newStartTime.split(' ')[0].split(':')[0]) > Number(endTime.split(' ')[0].split(':')[0])){
		if(newStartTime.split(' ')[1] == endTime.split(' ')[1])
			executing = false;
	}
	else if(Number(newStartTime.split(' ')[0].split(':')[0]) == Number(endTime.split(' ')[0].split(':')[0])) {
		 if(Number(newStartTime.split(' ')[0].split(':')[1]) >= Number(endTime.split(' ')[0].split(':')[1])) {
			if(newStartTime.split(' ')[1] == endTime.split(' ')[1])
				executing = false;
		}
	}
}
timeArray.push(endTime);
document.getElementById('lblTime').innerText = timeArray;