Удаление секунд из времени и округление минут - PullRequest
0 голосов
/ 01 ноября 2019

Я храню записи о времени в переменной с именем продолжительности. Итак, прямо сейчас Если я зарегистрирую запись времени, она будет в стандартном формате: ex) 12: 30: 00

Что я хочу сделать, это удалить часть времени в секундах и округлить минуты докаждые 15 минутТакже я хотел бы удалить 0 в начале, если время до 10.

Так что 09:00:00 станет 9

09: 30: 00 будет 9:30

Таким образом, 12:30:00 будет 12:30.

12: 08: 00 будет 12: 15

12: 34: 00 будет 12:30 и т. Д.

Вот код, который я использовал:

    $duration = '';

    if ($seconds < 0) {
        $duration = '-';
        $seconds  = abs($seconds);
    }

    $hours    = floor($seconds / 3600);
    $seconds -= $hours * 3600;
    $minutes  = floor($seconds / 60);
    $seconds -= $minutes * 60;

    return $duration . sprintf('%d:%02d:%02d', $hours, $minutes, $seconds);
}

и вот пример вывода:

1 => "12:20:00"

1 Ответ

1 голос
/ 01 ноября 2019

Попробуйте это.

 $currentTime = strtotime('12:34:00');
 echo 'Rounded Up 15 Minutes time: ' . date('H:i',round($currentTime / (15 * 60)) * (15 * 60));
//output - Rounded Up 15 Minutes time: 12:30

Если это

 $currentTime = strtotime('12:08:00');
 echo 'Rounded Up 15 Minutes time: ' . date('H:i',round($currentTime / (15 * 60)) * (15 * 60));
//output - Rounded Up 15 Minutes time: 12:15

, проверьте демо. demo

Для раунда вы можете проверить с минутным нулевым условием, как.

$currentTime = strtotime('9:00:00');
 if(date('i',ceil($currentTime / (15 * 60)) * (15 * 60)) == 00){
    echo date('H',ceil($currentTime / (15 * 60)) * (15 * 60));  
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...