Guga01 0 Denunciar post Postado Agosto 29, 2009 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
Jace 1 Denunciar post Postado Agosto 30, 2009 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
Guga01 0 Denunciar post Postado Agosto 30, 2009 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