Ir para conteúdo

POWERED BY:

Arquivado

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

Thony Conde

Datas - Calcular intervalo de dias

Recommended Posts

Olá galera.Tenho dois campos no meu MySQL do tipo date:data_entradadata_saidaAmbos guardam um intervalo de tempo, onde sempre, data_entrada é menor que data_saida.Preciso calcular quantos dias estão neste intervalo!ex:data_entrada = 01-01-2007data_saida = 10-01-2007intervalo = 10 diasCreio que apenas com SQL é possivel... Mas não estou com nenhuma ideia até agora...=[se alguem poder ajudr, valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo

 

É bem mais simples =)

 

tente fazer assim:

PHP
$data1 = mktime(0,0,0,$mes,$dia,$ano);

 $data2 = mktime(0,0,0,$mes2,$dia2,$ano2);

 

 // diferenca de data2 - data1

 $data = $data2-$data1;

 echo date("Y-m-d",$data);

 

 

talvez de algum errinho algo do tipo, mas de uma olhada na funcao mktime :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro Micael

 

Meu problema é parecido, também tenho duas datas e preciso calcular o intervalo entre elas. Minha variável, na verdade, contém data e hora, mas usei explode para separa-las. Ficou portanto em um array - data e hora. Usei novamente o explode para a data e agora preciso fazer a diferença dos dias e não estou conseguindo usar o exemplo que passou ai com mktime. No meu caso, a data é lida de um banco de dados, cujos dados são obtidos em um arquivo xml.

 

Caso possa me ajudar, ou outra pessoa que saiba a melhor maneira de fazer isso, por favor, HELP.

MÁRCIA

 

 

Amigo

 

É bem mais simples =)

 

tente fazer assim:

PHP
$data1 = mktime(0,0,0,$mes,$dia,$ano);

 $data2 = mktime(0,0,0,$mes2,$dia2,$ano2);

 

 // diferenca de data2 - data1

 $data = $data2-$data1;

 echo date("Y-m-d",$data);

 

 

talvez de algum errinho algo do tipo, mas de uma olhada na funcao mktime :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigada Micael

Como o meu problema é que essa rotina faz parte da minha pesquisa de pós-grad e tenho prazo a cumprir, já resolvi este problema e agora estou com outro.

Tenho uma nova rotininha onde faço uma consulta em uma tabela de um bd, daí tenho que armazenar estes dados em outra tabela. Então tenho, por exemplo, um nome, um numero, um intervalo de datas, e um valor de consumo(float). Tenho que abrir o intervalo e salvar dia a dia. Isto já está pronto, o problema e que tenho inúmeros dados e em alguns pontos se repetem o mesmo nome, numero e data, daí tenho que intervir e pedir pra que o consumo seja somado, e o registro atualizado. Ficou claro?

É isso que agora está sendo minha dificuldade. Consigo gravar todos os dados, mas ele para quando esses valores se repetem, quando eu queria que ele atualizasse, somando o consumo que já tinha para o dia, com o novo consumo sem mexer no nome, no numero e na data.

Ele dá erro de entrada duplicada e não soma e atualiza como eu quero.

O trecho que deve fazer isto é:

 

for ($i=$prim_date; $i<=$ult_date; $i+=86400) {

echo "i= ".$i."<br>";

if ($dia != 0 && $dia != 6) { // se dia da semana eh diferente de domingo e de sabado...

 

// verifica se já existe registro para numrecurso e dia

$sqla="SELECT nomeprojeto,numrecurso,dia,consumo FROM tab_estoque WHERE nomeprojeto = $nomeproj AND numrecurso=$numeror AND dia = $i";

$limiteb=mysql_query("$sqla");

 

if ($limiteb) { // jah existe registro para aquele material e dia...

 

$sqlb=mysql_fetch_array($limiteb);

$nomeproj=$sqlb['nomeprojeto'];

$numeror=$sqlb['numrecurso'];

$inicio=$sqlb['dia'];

echo "inicio".$inicio."<br>";

$iconsumo=$sqlb['consumo'];

$quantidade = $quantidade + $iconsumo; // adiciona o consumo novo ao já existente

echo "quantity".$quantidade."<br>";

// remove o registro já existente, que será a seguir regravado.

echo "nome".$nomeproj."<br>";

$sqla="DELETE FROM tab_estoque WHERE nomeprojeto = $nomeproj AND numrecurso=$numeror AND dia = $i";

$limiteb=mysql_query("$sqlb");

}

 

 

$sql="INSERT INTO tab_estoque(nomeprojeto,numrecurso,dia,consumo) VALUES('$nomeproj','$numeror','$i','$quantidade')";

$res2=mysql_query($sql) or die (mysql_errno());

}

$dia = (++$dia) % 7;

}

 

 

Caso possa me ajudar, ficarei grata

Ogrigada novamente

 

Márcia http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

Marcia, desculpe a demora, mas pode me mandar uma MP que te respondo mais rápido.

 

Assim, voce pode me mandar o codigo para ver o problema?

 

[]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.