Como formatar horas no PHP?
O formato para horas em PHP é representado pelos caracteres H:i:s. Onde:
Hretorna a hora de 0 a 23iretorna o minutoSretorna 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:
ha hora de 0 a 12aretorna se a hora é AM ou PM (em minúsculo)Aretorna 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