Como converter a data por extenso com PHP


Neste tutorial vamos ver como usar o strftime() para converter a data por extenso.

Quando é usado strftime() para criar a data por extenso, a função pega automaticamente as configurações locais.

Converte a data atual por extenso.

setlocale(LC_TIME, 'pt_BR', 'pt_BR.utf-8', 'pt_BR.utf-8', 'portuguese');
date_default_timezone_set('America/Sao_Paulo');
echo strftime('%A, %d de %B de %Y', strtotime('today'));

Download do código fonte desenvolvido no tutorial: DOWNLOAD

Converter a data do banco de dados por extenso


Primeiro necessário criar o banco de dados com a tabela "artigos".

CREATE TABLE artigos (
  id int(11) NOT NULL AUTO_INCREMENT,
  data datetime NOT NULL,
  PRIMARY KEY (id)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

Inserir registros na tabela "artigos".

INSERT INTO artigos (id, data) VALUES
(1, '2019-02-28 09:30:10'),
(2, '2019-02-28 10:30:10');

Em seguida criar o arquivo "index.php". Primeiro realizar a conexão com o banco de dados. Em seguida recuperar os registros do banco de dados com PHP. Para finalizar realizar a conversão da data por extenso. No código abaixo está a descrição de cada linha de código.

//Criar a conexão com banco de dados, colocando as credencias do seu banco de dados
$conn = mysqli_connect("servidor", "usuario_banco_dados", "senha_banco_dados", "nome_banco_dados");

//Define informações locais 
setlocale(LC_TIME, 'pt_BR', 'pt_BR.utf-8', 'pt_BR.utf-8', 'portuguese');
date_default_timezone_set('America/Sao_Paulo');

//Pesquisar as datas no banco de dados
$query_artigos = "SELECT * FROM artigos";
$result_artigos = mysqli_query($conn, $query_artigos);
//Ler o resultado obtido do banco de dados
while($row_artigo = mysqli_fetch_assoc($result_artigos)){
	echo "Id do artigo: " . $row_artigo['id'] . "";
	//Imprimir a data conforme está no banco de dados
	echo "Data no formato salvo no banco de dados: " . $row_artigo['data'] . "";
	//Converter a data para o formato brasileiro
	echo "Data no formato salvo no banco de dados: " . date('d/m/Y H:i:s', strtotime($row_artigo['data'])) . "";
	//Converte a data por extenso
	echo "Data por extenso: " . strftime('%A, %d de %B de %Y', strtotime($row_artigo['data'])) . "";
}


Download do código fonte desenvolvido no tutorial: DOWNLOAD

Portanto, chegamos ao final de mais um tutorial sobre PHP.