Function date shows wrong value of minutes in PHP

Asked

Viewed 209 times

1

I have a problem with the date and time with PHP even defining the region using date_default_timezone_set(America/Sao_Paulo), He’s giving away almost 30 minutes:

inserir a descrição da imagem aqui

Follow the code to generate this screen:

date_default_timezone_set('America/Sao_Paulo');

setlocale(LC_ALL, 'pt_BR');
 $data = ini_get('date.timezone');    echo "Fuso Horario do servidor <b>".$data."</b>";?>
             <?php $data = date_default_timezone_get(); echo "<br>Fuso horario do sistema <b> ".$data."</b>";?>
             <?php $data      = date("e");      echo "<br>Fuso horario do sistema : <b>".$data."</b>";?>
             <? $script_tz = date_default_timezone_get();
                if (strcmp($script_tz, ini_get('date.timezone'))){
                    echo '<br>O fuso horário do sistema difere do fuso horário servidor. Porem isso não é um problema';
                } else {
                    echo '<br>Fuso horário de Sistema e fuso horário de servidor iguais !';
                }
                echo ini_get('date.timezone'); ?>
             <?php $data      = date("d/m/Y");  echo "<br>Data atual de hoje <b>".$data."</b>";?><br>
             <?php $data      = date("H:m");    echo "Hora Atual de hoje formato 24h <b>".$data."</b>";?><br>
             <?php $data      = date("h:m A");  echo "Hora Atual de hoje formato 12h <b>".$data."</b>";?>
             <?php $data      = date("P");      echo "<br>Fuso horario : <b>".$data."</b>";?>
             <?php $data      = date("z");      echo "<br><hr>Já se foi <b>".$data."</b> dias do ano";?>
             <br><p>Para as seguintes 1 para sim 0 para nao</p>
             <?php $data      = date("L");      echo "Estamos em um ano bissexto? <b>".$data."</b>";?>
             <?php $data      = date("I");      echo "<br>Estamos em horario de verão ? <b>".$data."</b>";?>

1 answer

3


According to the job documentation date, the letter m corresponds to the numerical value of the month (so he’s showing the value 04, because it’s April and when the second parameter is not passed, the current date is used).

For the minutes, you must use the letter i, in accordance with indicated in the documentation:

 <?php $data      = date("H:i");    echo "Hora Atual de hoje formato 24h <b>".$data."</b>";?><br>
 <?php $data      = date("h:i A");  echo "Hora Atual de hoje formato 12h <b>".$data."</b>";?>

I know it seems counterintuitive to use i for the minutes ("Why isn’t m?"), but the letters M and m are already used for the month. Here is a summary of these letters and their meaning, taken from documentation:

+-----------+------------------------------------------------------+---------------+
| Caractere |                     Descrição                        |   Exemplos    |
+-----------+------------------------------------------------------+---------------+
| m         |  Representação numérica do mês, com zeros à esquerda |  De 01 a 12   |
| M         |  Representação textual do mês, com 3 letras          |  De Jan a Dec |
| i         |  Minutos com zeros à esquerda                        |  De 00 a 59   |
+-----------+------------------------------------------------------+---------------+

Browser other questions tagged

You are not signed in. Login or sign up in order to post.