Subtract one hour from the current time

0

How do I subtract a time example I get the time like this:

<?php
$hora = "00:12:00"
eco $hora;
?>

How do I stay like this:

11:12:00
    
asked by anonymous 20.08.2017 / 01:25

3 answers

1
$hora = "00:12:00";
echo date("g:i:s", srttotime("-1 Hour", strtotime($hora)));
    
20.08.2017 / 02:17
0

I think this is not the proper way to do this, but I created this function for this action:

    <?php
    function menosUmaHora($string) {
        $hora = explode(':', $string);//Cria uma array com 3 posições: 0 hora, 1 minuto, 2 segundo
        $hora[0] = (int) $hora[0]; //converte de string para inteiro
        $hora[1] = (int) $hora[1]; //converte de string para inteiro
        $hora[2] = (int) $hora[2]; //converte de string para inteiro
        if ($hora[0] <= 0) { //Verifica se o valor da posição hora é menor ou igual a 0
            $hora[0] = 11; //Se sim, posição hora agora é 11
        } else {
            $hora[0] --; //Se não, posição hora terá 1 subtraido
        }
        return implode(':', $hora);//Monta a string em ordem hh:mm:ss e retorna
    }

    $string = "00:12:00";
    echo "Old hour: " . $string . '<br>';
    echo "New hour: " . menosUmaHora($string);
?>
    
20.08.2017 / 02:27
0

One option is to use the sub method to subtract an interval using DateInterval where PT1H represents 1 hour. See:

$date = new DateTime('00:12:00');
$date->sub(new DateInterval('PT1H'));
echo $date->format('h:i:s') . "\n";

See working on Ideone .

    
20.08.2017 / 05:16