# Thread: How would I round time to 15 minute increments?

1. Registered User
Join Date
Feb 2007
Posts
8

## How would I round time to 15 minute increments?

I have a bunch of time boxes on a form. I need to round time that the user enters to 15 minute intervals. I'm thinking if its less than 15 minutes minutes=00. If its greater than 15 but less than 30 minutes = 15, etc. If it's greater than 45 but less than 59 the minutes would have to = 00 and the hour increment by 1.

Here is the code I am using to validate if the time is in military format.

function IsValidTime(timeStr) {

var timePat = /^(\d{1,2})\d{2})(\d{2}))?(\s?(AM|am|PM|pm))?\$/;

var matchArray = timeStr.match(timePat);
if (matchArray == null) {
alert("Time is not in a valid format. It must be 00:00 format for military time.");
return false;
}
hour = matchArray[1];
minute = matchArray[2];
second = matchArray[4];
ampm = matchArray[6];

if (second=="") { second = null; }
if (ampm=="") { ampm = null }

if (hour < 0 || hour > 23) {
alert("Hour must be between 1 and 12. (or 0 and 23 for military time)");
return false;
}

if (minute<0 || minute > 59) {
alert ("Minute must be between 0 and 59.");
return false;
}
if (second != null && (second < 0 || second > 59)) {
alert ("Second must be between 0 and 59.");
return false;
}
return false;
}

</script>

Does anyone know how I would work some logic into this to check the minute and set the minutes based on what they round to?

I would like the form values to automatically change when they tab off of it.

Thank you!

2. Registered User
Join Date
Jan 2008
Posts
45
put 3 drop down <select> menus instead with predefined intervals. 1st will have 00 15 30 45 - 4 items for minutes, 2nd 12 items 0 1 2... for hours and 3rd 2 items for AM PM

3. Originally Posted by spacerobot
I have a bunch of time boxes on a form. I need to round time that the user enters to 15 minute intervals. I'm thinking if its less than 15 minutes minutes=00. If its greater than 15 but less than 30 minutes = 15, etc. If it's greater than 45 but less than 59 the minutes would have to = 00 and the hour increment by 1.
Your rounding requirement is inconsistent, but I assume that's the way it's done.
This expression will round to the lowest quarter hour:

roundedMinutes=(15*Math.floor(enteredMinutes/15))

If the entered minutes>45 set to 0 and presumably carry an hour.

4. Registered User
Join Date
Feb 2007
Posts
8
Thanks for the reply. How would I work that into the javascript i posted from above to set the form text field to display the rounded minutes?

Sorry I know very little about javascript.

5. Registered User
Join Date
Jan 2008
Location
Grand Rapids, Michigan, USA
Posts
1

## I have a time entry widget that may simplify your problem.

The widget will proved a start and end time with just the drag of a mouse. And it is very easy to incorporate into existing forms.

It can simplify your development efforts. Legitimate time values come from an array that you describe. The user cannot enter an illegal value.

There are currently 1 users browsing this thread. (0 members and 1 guests)

#### Posting Permissions

• You may not post new threads
• You may not post replies
• You may not post attachments
• You may not edit your posts
•