/    Sign up×
Community /Pin to ProfileBookmark

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!

to post a comment
JavaScript

4 Comments(s)

Copy linkTweet thisAlerts:
@Killzone_KidJan 14.2008 — 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
Copy linkTweet thisAlerts:
@Arty_EffemJan 14.2008 — 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.
[/QUOTE]
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.
Copy linkTweet thisAlerts:
@spacerobotauthorJan 15.2008 — 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.
Copy linkTweet thisAlerts:
@info-daveJan 17.2008 — 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.

Take a look at http://info-tran/timePad.html

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

Success!

Help @spacerobot spread the word by sharing this article on Twitter...

Tweet This
Sign in
Forgot password?
Sign in with TwitchSign in with GithubCreate Account
about: ({
version: 0.1.9 BETA 6.17,
whats_new: community page,
up_next: more Davinci•003 tasks,
coming_soon: events calendar,
social: @webDeveloperHQ
});

legal: ({
terms: of use,
privacy: policy
});
changelog: (
version: 0.1.9,
notes: added community page

version: 0.1.8,
notes: added Davinci•003

version: 0.1.7,
notes: upvote answers to bounties

version: 0.1.6,
notes: article editor refresh
)...
recent_tips: (
tipper: @nearjob,
tipped: article
amount: 1000 SATS,

tipper: @meenaratha,
tipped: article
amount: 1000 SATS,

tipper: @meenaratha,
tipped: article
amount: 1000 SATS,
)...