Como formatar horas no PHP?
O formato para horas em PHP é representado pelos caracteres H:i:s
. Onde:
H
retorna a hora de 0 a 23i
retorna o minutoS
retorna o segundo
Exibindo a hora atual formatada pelo PHP
Para exibir a hora atual em PHP, basta utilizamos a função date
ou o método DateTime::format
.
Exemplo:
date('H:i:s')
ou
$date = new Datetime();
echo $date->format('H:i:s');
// ou
echo (new Datetime)->format('H:i:s');
{% include ads_article.html %}
Formatando hora de uma determinada data
Para formatar a horas específica de uma determinada data, você pode realizar a mesma operação anterior.
No nosso exemplo, vamos supor que temos a data 2017-02-31 23:10:58
.
Utilizando a classe DateTime
, ficaria dessa forma.
$entrada = '2017-02-31 23:10:58';
(new DateTime($entrada))->format('H:i:s'); // 23:10:58
Já no caso da função date
, você precisa utilizar também o strtotime
, para que o PHP converta a data para um unix timestamp;
Veja:
$entrada = '2017-02-31 23:10:58';
echo date('H:i:s', strtotime($entrada)); // 23:10:58
Exibindo horas com AM e PM
Para exibir datas contendo a identificação AM
(ante meridiem) e PM
(post meridiem), você deve utilizar o formato h:i:s A
ou h:i:s a
.
Explicando melhor os caracteres acima significam:
h
a hora de 0 a 12a
retorna se a hora é AM ou PM (em minúsculo)A
retorna se a hora é AM ou PM (em maiúsculo)
Exemplos:
echo date('h:i:s A'); // 10:02:55 AM
echo date('h:i:s a'); // 10:02:55 am
echo (new DateTime)->format('h:i:s A');
Dica: padronize o formato utilizado
Pode ser que você precise utilizar o mesmo formato em vários lugares no seu projeto. Neste caso, para fins de manutenção de padrões e evitar repetições desnecessárias, sugiro a utilização de uma constante para armazenar o valor de formatação das horas.
define('TIME_FORMAT', 'h:i:s A');
echo date(TIME_FORMAT); // 03:18:41 PM