# 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.

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.

##### Users Browsing this Thread

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
•

"

"

## X vBulletin 4.2.2 Debug Information

• Page Generation 0.10198 seconds
• Memory Usage 2,869KB
• Queries Executed 13 (?)
Template Usage (33):
• (1)bbcode_quote
• (1)footer
• (1)forumjump
• (1)forumrules
• (1)gobutton
• (5)memberaction_dropdown
• (1)navbar
• (1)navbar_moderation
• (1)navbar_noticebit
• (1)navbar_tabs
• (2)option
• (5)postbit
• (5)postbit_onlinestatus
• (5)postbit_wrapper
• (1)spacer_close
• (1)spacer_open
• (1)tagbit_wrapper

Phrase Groups Available (6):
• global
• inlinemod
• postbit
• posting
• reputationlevel
Included Files (26):
• ./global.php
• ./includes/class_bootstrap.php
• ./includes/init.php
• ./includes/class_core.php
• ./includes/config.php
• ./includes/functions.php
• ./includes/class_friendly_url.php
• ./includes/class_hook.php
• ./includes/class_bootstrap_framework.php
• ./vb/vb.php
• ./vb/phrase.php
• ./includes/functions_calendar.php
• ./includes/functions_bigthree.php
• ./includes/class_postbit.php
• ./includes/class_bbcode.php
• ./includes/functions_reputation.php
• ./includes/functions_notice.php
• ./packages/vbattach/attach.php
• ./vb/types.php
• ./vb/cache.php
• ./vb/cache/db.php
• ./vb/cache/observer/db.php
• ./vb/cache/observer.php

Hooks Called (70):
• init_startup
• friendlyurl_resolve_class
• init_startup_session_setup_start
• database_pre_fetch_array
• database_post_fetch_array
• init_startup_session_setup_complete
• global_bootstrap_init_start
• global_bootstrap_init_complete
• cache_permissions
• fetch_foruminfo
• global_state_check
• global_bootstrap_complete
• global_start
• style_fetch
• global_setup_complete
• strip_bbcode
• friendlyurl_clean_fragment
• friendlyurl_geturl
• forumjump
• cache_templates
• cache_templates_process
• template_register_var
• template_render_output
• fetch_template_start
• fetch_template_complete
• parse_templates
• notices_check_start
• notices_noticebit
• process_templates_complete
• friendlyurl_redirect_canonical
• bbcode_fetch_tags
• bbcode_create
• postbit_factory
• postbit_display_start
• postbit_imicons
• bbcode_parse_start
• bbcode_parse_complete_precache
• bbcode_parse_complete
• postbit_display_complete
• memberaction_dropdown
• tag_fetchbit_complete
• forumrules
• navbits
• navbits_complete