Ir para conteúdo

POWERED BY:

Arquivado

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

Marcelo Diniz

[Resolvido] datas somente da semana

Recommended Posts

Ola pessoal, estou tendo que montar um script de atualização, onde eu tenho em uma tabela a data da ultima atualização do sistema.

 

Vamos supor que a ultima atualização do sistema foi no dia 25/05/2010 que eu estou guardando como 20100525 e hoje 20100531 eu preciso rodar a atualização, só que terei que criar um loop para percorrer a partir do dia 25 até o dia de hj mas quando for fim de semana não faça nada.

 

Alguem saberia me ajudar com isso?

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, ve o qeu consegui fazer até agora:

 


$last_date = "20100525"; //data que eu obtenho do banco de dados
$date_now = "20100531"; //data atual

if($last_date < $date_now) {
	for($last_date; $last_date < $date_now; $last_date++) {
		$ano = substr($last_date,0,4);
		$mes = substr($last_date,4,2);
		$dia = substr($last_date,6,2);
		$dow = date('N', mktime(0, 0, 0, $mes, $dia, $ano)); //obtenho o dia da semana 1 (para Segunda) até 7 (para Domingo)
		if($dow < 6) {
			echo "$dow - Ano->$ano--Mes->$mes--Dia->$dia<br>";	
		}
	}
}

Mas agora já me apareceu outro problema. Se a data atual fosse 20100608 dai iria rodar para os dias 26, 27, 28, 29, 30, 31, 32, 33, 34, 35 até 99 do mes 05. Alguem saberia me ajudar nessa?

 

Tks

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, já consegui resolver o caso:

 


$last_date = "20100525"; //data que eu obtenho do banco de dados
$date_now = "20100531"; //data atual

if($last_date < $date_now) {
	for($last_date; $last_date < $date_now; $last_date++) {
		$ano = substr($last_date,0,4);
		$mes = substr($last_date,4,2);
		$dia = substr($last_date,6,2);
		$dow = date('N', mktime(0, 0, 0, $mes, $dia, $ano)); //obtenho o dia da semana 1 (para Segunda) até 7 (para Domingo)
		
		if($dia <= $last_day_month && $mes <= 12 && $mes != 00 && $dia != 00) {
			if($dow < 6) {
				echo "$dow - $dia/$mes/$ano<br>";	
			}	
		}		
	}
}

 

Só para constar mesmo...

 

Agora a partir dai tenho que rodar outras coisas que estou procurando como fazer!

 

Assim a partir de onde eu parei, se for dia da semana (if($dow < 6)) preciso rodar uma Stored Procedure passando uns paramentros e depois rodar uma query no Sql Server, e o que me foi passado pelo pessoal foi isso:

 

/*

Set NoCount On

 

Exec DB_BMF01..REL_CORRETAGEM_MANDATARIO

@GD_DTINI = '$mes/$dia/$ano',

@GD_DTFIM = '$mes/$dia/$ano',

@GN_CDEMP = 1

 

Select * From DB_BMF01..TMP_REL_OPE_M01

*/

 

Alguem sabe a melhor forma de eu rodar a SP passando paramentros e depois rodar a query?

 

Obrigado

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.