Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Round formatted time value to the nearest half-hour

Tags:

php

rounding

I need 0:30 through 0:59 to round down to 0:30.
I need 0:00 through 0:29 to round up to 0:30.

Example: 08:56 will round down to 08:30 where 09:00 and 09:01 will need to round up to 09:30.
Seconds should be omitted or rounded to :00

like image 429
sloga Avatar asked May 25 '11 16:05

sloga


People also ask

How do I round to the nearest half hour in Excel?

Enter this formula: =MROUND(A2,"0:15") or =MROUND(A2,"0:30") into a blank cell beside your data which need to round to nearest quarter or half hour, and then drag the fill handle down to the cells you want to apply this formula, and you will get a list of decimal numbers, see screenshot: 2.

How do you round numbers to the nearest half?

When rounding to the nearest half, round the fraction to whichever half the fraction is closest to on the number line. If a fraction is equally close to two different halves, round the fraction up.


3 Answers

Why don't you just do this:

$hour = date('H');
$minute = (date('i')>30)?'30':'00';
echo "$hour:$minute";

DEMO

UPDATE
I just realized that you asked all time to be rounded to :30:

$hour = date('H');
$minute = '30'; //always 30
echo "$hour:$minute";
like image 188
Naftali Avatar answered Oct 23 '22 15:10

Naftali


My solution to a real round are the next options:

//Round Down
date('H:i',floor(time() / (15 * 60)) * (15 * 60))

//Round Up/Down
date('H:i',round(time() / (15 * 60)) * (15 * 60))

//Round Up
date('H:i',ceil(time() / (15 * 60)) * (15 * 60))

Replace time() with the time you need, and 15 with the minutes you like to round near to.

Example:

$currentTime = time();
echo('Current Time: ' . date('H:i',$currentTime) . '<br>Rounded Up 15 Minutes time: ' . date('H:i',ceil($currentTime / (15 * 60)) * (15 * 60)));
like image 42
Roy Shoa Avatar answered Oct 23 '22 14:10

Roy Shoa


you have to do: 

$hour = date('H'); 
$minute = date('i');
$minute = ($minute < 30 || $minute > 30) ? 30 : $minute;
like image 1
Racooon Avatar answered Oct 23 '22 16:10

Racooon