www.webdeveloper.com
Results 1 to 5 of 5

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

  1. #1
    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. #2
    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. #3
    Join Date
    Aug 2006
    Location
    England
    Posts
    665
    Quote 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.
    Scripterlative.com

    PM = 'PayPal Mode'

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

Thread Information

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
  •  
HTML5 Development Center



Recent Articles