Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

marceltk

Classe para retornar a data por extenso

Recommended Posts

<?php
Class Data{

 function getData($string = 'Bauru'){
   $dia = $this->Dia();
   $mes = $this->Mes();
   $ano = date('Y');
   $Dia = date('d');
   $data = $string.", ".$dia." ".$Dia." de ".$mes." de ".$ano;
   return $data;
 }

 function Mes(){
   $mes = date('n');
   $Mes[1]  = 'Janeiro';
   $Mes[2]  = 'Fevereiro';
   $Mes[3]  = 'Março';
   $Mes[4]  = 'Abril';
   $Mes[5]  = 'Maio';
   $Mes[6]  = 'Junho';
   $Mes[7]  = 'Julho';
   $Mes[8]  = 'Agosto';
   $Mes[9]  = 'Setembro';
   $Mes[10] = 'Outubro';
   $Mes[11] = 'Novembro';
   $Mes[12] = 'Dezembro';
   return $Mes[$mes];
 }

 function Dia(){
   $dia = date('w');
   $Dia[0] = 'Domingo';
   $Dia[1] = 'Segunda-feira';
   $Dia[2] = 'Terça-feira';
   $Dia[3] = 'Quarta-feira';
   $Dia[4] = 'Quinta-feira';
   $Dia[5] = 'Sexta-feira';
   $Dia[6] = 'Sábado';
   return $Dia[$dia];
 }
}
?>

Chamando a Função

$Data = new Data();
echo $Data->getData();

 

Segue aí, uma classe para os iniciantes que precisam implementar uma data por extenso no site..

espero que gostem..

abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

dá para fazer a mesma coisa usando setlocale() e strftime().

 

 

Há vários tópicos sobre isso no fórum.

 

pra aprendizagem dessa forma é a mais facil..

tanto pra quem ta começando em OO e no básico tbm.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bacana.. pra ficar mais interessante, você poderia usar mais alguns conceitos de OO.. vamos ver(20 minutos depois)..

Talvez tenha alguma forma mais interessante, mas pelo construtor, acredito que fica mais fácil de atribuir os atributos nesse caso.

<?php
Class Data 
{
	private $dia;
	private $diaSemana;
	private $mes;
	private $ano;
	
	/*
	 * construtor 
	 */
	public function Data( $day='' )
	{
		if( $day == '' )
		{
			$this->diaSemana = date('w');
			$this->dia = date('d');
			$this->mes = date('n');
			$this->ano = date('Y');
		}
		else
		{
			$p = explode('/', $day);
			$this->dia = $p[0];
			$this->mes = $p[1];
			$this->ano = $p[2];

			$this->diaSemana = date("w", mktime(0, 0, 0, $this->mes, $this->dia, $this->ano));
		}
	}
	public function getData( $string = 'Bauru' )
	{	
		$mes = self::Mes();
		$diaSemana = self::Dia();
		$data = $string.', '.$diaSemana.' '.$this->dia.' de '.$mes.' de '.$this->ano;
		return $data;
	}

	private function Mes()
	{
		$Mes = array(
		1=>'Janeiro',
		2=>'Fevereiro',
		3=>'Março',
		4=>'Abril',
		5=>'Maio',
		6=>'Junho',
		7=>'Julho',
		8=>'Agosto',
		9=>'Setembro',
		10=>'Outubro',
		11=>'Novembro',
		12=>'Dezembro'
		);
		
		return $Mes[$this->mes];
	}

	private function Dia()
	{	
		$Dia = array(
		0=>'Domingo',
		1=>'Segunda-feira',
		2=>'Terça-feira',
		3=>'Quarta-feira',
		4=>'Quinta-feira',
		5=>'Sexta-feira',
		6=>'Sábado'
		);
		
		return $Dia[$this->diaSemana];
	}
}

/* para retornar uma data específica por extenso */
$Data = new Data('14/12/1988');//dia em que nasci ^^
echo $Data->getData();

echo '<hr />';

/* para retornar a data atual */
$Data = new Data();
echo $Data->getData();
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

William Bruno,

não entendo muito ainda de OO,

 

entao a pergunta: qual a diferença, li num livro q a partir do PHP 5 não se usa mais isso q você fez, function Data, e sim o function __construct para se criar construtores, porém as duas maneiras funcionam normalmente

 

:huh:

Compartilhar este post


Link para o post
Compartilhar em outros sites

William Bruno

 

Pensei em fazer exatamente isso qui você postou..

mas eu tava na empresa e meio sem tempo

hehehe

mais é isso ae.. a galera vai aproveita bastante os metodos..

 

abração

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao a pergunta: qual a diferença, li num livro q a partir do PHP 5 não se usa mais isso q você fez, function Data, e sim o function __construct para se criar construtores, porém as duas maneiras funcionam normalmente

 

Usar um construtor com o mesmo nome da classe, eh a sintaxe adotada pelas outras linguagens de programacao, como Java.

 

O php preferiu criar os seus 'metodos magicos'(__set, __get, __construct..), entao para o php, eh mais rapido que declaremos o construtor usando a sintaxe: __construct, do que com o nome da classe.

Fiz por "falta do que fazer mesmo". Eu deveria ter usado o __construct, mas para exemplo, e entendimento achei que ia ficar mais claro, se eu adotasse praticas mais conhecidas ai "no mundo a fora".

 

Pode trocar, que você so tera o ganho de performance, pois primeiro ao instanciar uma classe, o interpretador procura pelo __construct, e depois por um metodo com o nome da classe, para ai decidir que ele eh o construtor. Enfim, acho que eh muuito dificil notar isso, e acho dificil que abandonem essa sintaxe.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok,

 

na verdade eu ja tinhaa trocado pelo __construct http://forum.imasters.com.br/public/style_emoticons/default/graduated.gif

 

 

ah.. vlw pela resposta http://forum.imasters.com.br/public/style_emoticons/default/coolio.gif

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.