Ir para conteúdo

POWERED BY:

Arquivado

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

Guga01

[Resolvido] Dia da semana

Recommended Posts

Olá pessoal!

 

Fiz uma função para imprimir a data por extenso. Por exemplo:

 

Sábado, 29 de agosto de 2009.

 

Só que, não sei por que, ela só retorna o dia da semana como Terça. A função é a seguinte:

 

function formataData($data)
{
	$parseData = date_parse($data);
	
	$ano = $parseData['year'];
	$mes = $parseData['month'];
	$dia = $parseData['day'];
	
	switch($mes)
	{
		case "1": $mes = "Janeiro"; break;
		case "2": $mes = "Fevereiro"; break;
		case "3": $mes = "Março"; break;
		case "4": $mes = "Abril"; break;
		case "5": $mes = "Maio"; break;
		case "6": $mes = "Junho"; break;
		case "7": $mes = "Julho"; break;
		case "8": $mes = "Agosto"; break;
		case "9": $mes = "Setembro"; break;
		case "10": $mes = "Outubro"; break;
		case "11": $mes = "Novembro"; break;
		case "12": $mes = "Dezembro"; break;
	}

	$diaSemana = date("w", $data);
	
	switch($diaSemana)
	{
		case"0": $diaSemana = "Domingo";       break;
		case"1": $diaSemana = "Segunda-Feira"; break;
		case"2": $diaSemana = "Terça-Feira";   break;
		case"3": $diaSemana = "Quarta-Feira";  break;
		case"4": $diaSemana = "Quinta-Feira";  break;
		case"5": $diaSemana = "Sexta-Feira";   break;
		case"6": $diaSemana = "Sábado";        break;
	}

	$resultado = $diaSemana . ", " . $dia . " de " . $mes . " de " . $ano;
	return $resultado;
}

Alguém saberia me dizer onde está o erro? Por que só retorna Terça? Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Trabalha com $data em time() dentro da função. Depois é só formatar e usar de acordo com a necessidade.

 

<?php
function formataData($data)
{
      	$time = time($data);

        $ano = date("Y", $time);
        $mes = date("m", $time);
        $dia = date("d", $time);
        
        switch($mes)
        {
                case "1": $mes = "Janeiro"; 
		break;
                case "2": $mes = "Fevereiro"; 
		break;
                case "3": $mes = "Março"; 
		break;
                case "4": $mes = "Abril"; 
		break;
                case "5": $mes = "Maio"; 
		break;
                case "6": $mes = "Junho"; 
		break;
                case "7": $mes = "Julho"; 
		break;
                case "8": $mes = "Agosto"; 
		break;
                case "9": $mes = "Setembro"; 
		break;
                case "10": $mes = "Outubro"; 
		break;
                case "11": $mes = "Novembro"; 
		break;
                case "12": $mes = "Dezembro"; 
		break;
        }

        $diaSemana = date("w", $time);
        
        switch($diaSemana)
        {
                case"0": $diaSemana = "Domingo";       
		break;
                case"1": $diaSemana = "Segunda-Feira"; 
		break;
                case"2": $diaSemana = "Terça-Feira";   
		break;
                case"3": $diaSemana = "Quarta-Feira";  
		break;
                case"4": $diaSemana = "Quinta-Feira";  
		break;
                case"5": $diaSemana = "Sexta-Feira";   
		break;
                case"6": $diaSemana = "Sábado";        
		break;
        }

        $resultado = $diaSemana . ", " . $dia . " de " . $mes . " de " . $ano;
	echo $resultado;   //Confira como ficou formatado
	return $resultado;
}
?>

Espero que ajude.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Jace,

 

Quando coloquei esta função time, todas as datas retornavam o dia de hoje. Como eu precisava descobrir o dia da semana de qualquer data que vinha do banco de dados, acabei ajustando minha função para a seguinte:

 

<?php
function formataData($data)
{
	$parseData = date_parse($data);
	
	$ano = $parseData['year'];
	$mes = $parseData['month'];
	$dia = $parseData['day'];
	$hora = $parseData['hour'];
	$minutos = $parseData['minutes'];
	$segundos = $parseData['seconds'];
	
	$dataBanco = mktime($hora, $minutos, $segundos, $mes, $dia, $ano);
	
	$ano = date("Y", $dataBanco);
	$mes = date("m", $dataBanco);
	$dia = date("d", $dataBanco);
	
	switch($mes)
	{
		case "1": $mes = "Janeiro"; break;
		case "2": $mes = "Fevereiro"; break;
		case "3": $mes = "Março"; break;
		case "4": $mes = "Abril"; break;
		case "5": $mes = "Maio"; break;
		case "6": $mes = "Junho"; break;
		case "7": $mes = "Julho"; break;
		case "8": $mes = "Agosto"; break;
		case "9": $mes = "Setembro"; break;
		case "10": $mes = "Outubro"; break;
		case "11": $mes = "Novembro"; break;
		case "12": $mes = "Dezembro"; break;
	}

	$diaSemana = date("w", $dataBanco);
		
	switch($diaSemana)
	{
		case "0": $diaSemana = "Domingo"; break;
		case "1": $diaSemana = "Segunda-Feira"; break;
		case "2": $diaSemana = "Terça-Feira"; break;
		case "3": $diaSemana = "Quarta-Feira"; break;
		case "4": $diaSemana = "Quinta-Feira"; break;
		case "5": $diaSemana = "Sexta-Feira"; break;
		case "6": $diaSemana = "Sábado"; break;
	}

	$resultado = $diaSemana . ", " . $dia . " de " . $mes . " de " . $ano;
	return $resultado;
}
?>

E eu só consegui ajustar a função depois que li seu post. Portanto, muito obrigado pela ajuda!

 

Trabalha com $data em time() dentro da função. Depois é só formatar e usar de acordo com a necessidade.

 

<?php
function formataData($data)
{
      	$time = time($data);

        $ano = date("Y", $time);
        $mes = date("m", $time);
        $dia = date("d", $time);
        
        switch($mes)
        {
                case "1": $mes = "Janeiro"; 
		break;
                case "2": $mes = "Fevereiro"; 
		break;
                case "3": $mes = "Março"; 
		break;
                case "4": $mes = "Abril"; 
		break;
                case "5": $mes = "Maio"; 
		break;
                case "6": $mes = "Junho"; 
		break;
                case "7": $mes = "Julho"; 
		break;
                case "8": $mes = "Agosto"; 
		break;
                case "9": $mes = "Setembro"; 
		break;
                case "10": $mes = "Outubro"; 
		break;
                case "11": $mes = "Novembro"; 
		break;
                case "12": $mes = "Dezembro"; 
		break;
        }

        $diaSemana = date("w", $time);
        
        switch($diaSemana)
        {
                case"0": $diaSemana = "Domingo";       
		break;
                case"1": $diaSemana = "Segunda-Feira"; 
		break;
                case"2": $diaSemana = "Terça-Feira";   
		break;
                case"3": $diaSemana = "Quarta-Feira";  
		break;
                case"4": $diaSemana = "Quinta-Feira";  
		break;
                case"5": $diaSemana = "Sexta-Feira";   
		break;
                case"6": $diaSemana = "Sábado";        
		break;
        }

        $resultado = $diaSemana . ", " . $dia . " de " . $mes . " de " . $ano;
	echo $resultado;   //Confira como ficou formatado
	return $resultado;
}
?>

Espero que ajude.

 

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.