How we can add hours into 12hour format time using Javascript/JQuery?
Example:
Add 2 hour in 12:00 AM then result should be 02:00 AM
Add 8 hour in 09:00 PM then result should be 05:00 AM
Advertisement
Answer
The following function takes a string representing a time and an integer denoting the number of hours you want to add to that time. You can optionally pass an integer number of minutes as well. The result is a string formatted as ‘h:mm xm’.
function addTimeToString(timeString, addHours, addMinutes) { // The third argument is optional. if (addMinutes === undefined) { addMinutes = 0; } // Parse the time string. Extract hours, minutes, and am/pm. var match = /(d+):(d+)s+(w+)/.exec(timeString), hours = parseInt(match[1], 10) % 12, minutes = parseInt(match[2], 10), modifier = match[3].toLowerCase(); // Convert the given time into minutes. Add the desired amount. if (modifier[0] == 'p') { hours += 12; } var newMinutes = (hours + addHours) * 60 + minutes + addMinutes, newHours = Math.floor(newMinutes / 60) % 24; // Now figure out the components of the new date string. newMinutes %= 60; var newModifier = (newHours < 12 ? 'AM' : 'PM'), hours12 = (newHours < 12 ? newHours : newHours % 12); if (hours12 == 0) { hours12 = 12; } // Glue it all together. var minuteString = (newMinutes >= 10 ? '' : '0') + newMinutes; return hours12 + ':' + minuteString + ' ' + newModifier; } function test(timeString, addHours, addMinutes) { document.write(timeString + ' + ' + addHours + ' h ' + (addMinutes || 0) + ' m → ' + addTimeToString(timeString, addHours, addMinutes) + '<br>'); } test('11:30 AM', 1, 45); test('9:00 PM', 4); test('11:55 PM', 0, 5); // In five minutes it will be midnight: 12 am. test('12:00 AM', 0, 5); // Five minutes after midnight: 12:05 am. test('11:55 AM', 0, 5); // In five minutes it will be noon: 12 pm. test('12:00 PM', 0, 5); // Five minutes after noon: 12:05 pm.