Ir para conteúdo

POWERED BY:

Arquivado

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

programador php

descobrir dia da semana

Recommended Posts

olágostaria de descobrir o dia da semana de uma determinada dataexemplo 09/07/2007 = segunda07/07/2007 = sabadogostaria de fazer isso... como que eu façço num sie nem por onde começar..se puderem me dar a lógica ficaria muto gratoabraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

a função date me retorna o dia da semana atual

por exemplo se executar este comando

date("D");
ele me retornará

Tue

 

e o que preciso é que ele verifique uma data e me diga que dia da semana é...

ou verifique se é sabado ou domingo

entendeu amigo?

abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

agora o problema é outro..

 

preciso validar que o dia seja util, terei que validar todas as possibilidades

<?php		$dia_atual = date("d");		$mes_atual = date("m");		$ano_atual = date("Y");		$ano_bissexto = date("L");		$hora_atual = date("H");		$minuto_atual = date("i");		$segundo_atual = date("s");				$data_atual = "$dia_atual/$mes_atual/$ano_atual $hora_atual:$minuto_atual:$segundo_atual";				// Delimitado por barras, pontos, espaços e traçoslist ($dia_abert, $mes_abert, $ano_abert, $hora_abert, $minuto_abert, $segundo_abert) = split ('[/.-.:. ]', $date_abert);$tempo = strtotime("$ano_abert$mes_abert$dia_abert");$dia_semana date("D", $tempo);			if($dia_semana == "Sat"){				$mes = $mes_abert;				$dia = $dia_abert+2;				$ano = $ano_abert;			}						if($dia_semana == "Sun")				$mes = $mes_abert;				$dia = $dia_abert+1;				$ano = $ano_abert;			}						if($dia_semana == "Sat" && $dia_abert == 			if($dia_abert == 28 && $mes_abert == 02 && $ano_bissexto == 0){				$mes = $mes_abert+1;					$dia = 01;				$ano = $ano_abert;			}						if($dia_abert == 29 && $mes_abert == 02 ){				$mes = $mes_abert+1;					$dia = 01;				$ano = $ano_abert;			}						if($dia_abert == 30 && $mes_abert == 04 || $mes_abert == 06 || $mes_abert == 09 || $mes_abert == 11){				$mes = $mes_abert+1;				$dia = 01;				$ano = $ano_abert;			}					 	if($dia_abert == 31 && $mes_abert == 01 || $mes_abert == 03 || $mes_abert == 05 || $mes_abert == 07 || $mes_abert == 08 || $mes_abert == 10 || $mes_abert == 12){				$mes = $mes_abert+1;				$dia = 01;				$ano = $ano_abert;			}						if($mes_abert == 12 && $dia_abert == 31){				$mes = 01;				$dia = 01;				$ano = $ano_abert+1;			}						$data_fim_dia_atual = "$dia_atual/$mes_atual/$ano_atual 15:00:00";						if($date_abert > $data_fim_dia_atual){				$inicio_atendimento = "$dia/$mes/$ano 08:00:00";			}			else {				$inicio_atendimento = "$date_abert";			}				?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

veja se isso te ajuda:

 

function diasemana($data){  // Traz o dia da semana para qualquer data informada$dia =  substr($data,0,2);$mes =  substr($data,3,2);$ano =  substr($data,6,9);$diasemana = date("w", mktime(0,0,0,$mes,$dia,$ano) );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;  			 }echo "$diasemana";}

Compartilhar este post


Link para o post
Compartilhar em outros sites

veja se isso te ajuda:

function diasemana($data){  // Traz o dia da semana para qualquer data informada$dia =  substr($data,0,2);$mes =  substr($data,3,2);$ano =  substr($data,6,9);$diasemana = date("w", mktime(0,0,0,$mes,$dia,$ano) );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;  			 }echo "$diasemana";}
Essa função sua esta retornando errado o resultado...

Compartilhar este post


Link para o post
Compartilhar em outros sites

A data informada tem q ser no formato "dd/mm/yyyy";caso queira data com valor direto do banco de dados, é só adaptar.Aqui funciona beleza....qual erro dá ai?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pois, eu testei assim mesmo, só que ele retorna o dia da semana errado. Fiz uns testes e mudei ela e funcionou:

 

<?function diasemana($data) {	$ano =  substr("$data", 0, 4);	$mes =  substr("$data", 5, -3);	$dia =  substr("$data", 8, 9);	$diasemana = date("w", mktime(0,0,0,$mes,$dia,$ano) );	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;	}	echo "$diasemana";}//Exemplo de usodiasemana("1985-03-30");?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

prog_web.....esse exemplo q você postou, com a data no formato yyyy-mm-dd, nao funciona para aquele meu script....como postei acima, é para datas no formato dd/mm/yyyy.......caso queira trabalhar com a sua data, era necessario fazer a adaptaçao que voce fez.....mudando os valores do substring......ou executando um explode, como preferir........mas se agora funcionou, ta tudo tranquilo......espero q isso seja útil a alguem.....abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

andreymor, eu sei. Como eu tinha dito, no seu script original, eu havia testado no formato dd/mm/yyyy, porém o dia de retorno estava vindo incorreto. Por isso fiz as mudanças aí e acabei mudando o formato! :)

Compartilhar este post


Link para o post
Compartilhar em outros sites
$dia = '2013-05-01';



function diasemana($data)

{ // Traz o dia da semana para qualquer data informada

$ano = substr($data,0,4);

$mes = substr($data,5,2);

$dia = substr($data,8,2);



$diasemana = date("w", mktime(0,0,0,$ano,$dia,$mes) );

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;

}

echo "$diasemana";

}



com a data q vc precisa !!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

antes de responder algum topico de uma olhada na data de criação ou na data da ultima postagem.

2007, acho q ja foi resolvido isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dica: usar a classe DateTime, sua vida ficará infinitamente mais simples:

$dataEnviada = '01/05/2013 17:30';

$diasExtenso = array("Domindo","segunda","Terça","Quarta","Quinta","Sexta","Sábado");
$date = DateTime::createFromFormat('d/m/Y H:i', $dataEnviada);
$feriados = array('01/01','31/12','25/12','01/05','25/04');

echo 'Data Informada: ', $date->format('d/m/Y H:i'), PHP_EOL;
echo 'Dia da semana (numero): ', $date->format('w'), PHP_EOL;
echo 'Dia da semana (extenso): ', $diasExtenso[$date->format('w')], PHP_EOL;
echo 'Ultimo dia do mes: ', $date->format('t'), PHP_EOL;
echo 'Final de semana?: ', $date->format('w') == 0 || $date->format('w') == 6 ? 'Sim' : 'Não', PHP_EOL;
echo 'É feriado?: ', in_array($date->format('d/m'),$feriados) ? 'Sim' : 'Não';

 

@braços!

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.