Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
estou fazendo um sistema de contas a pagar e receber...
preciso fazer um script que pegue todos as datas entre os períodos que eu determinar.
Ex.: dataInicial='01/12/2012' - dataFinal='31/12/2012'...
resultado='01/12/2012, 02/12/2012/03/12/2012'...etc
ele me dê todas as datas entre esse período para eu pegar das tabelas de "contas a pagar" e "contas a receber" os registros iguais as datas fornecidas...
ex:
if(dataScript==dataTabelaPagar){echo Mostra_Debito}
elseif(dataScript==dataTabelaReceber){echo MostraCredito}
acima é apenas um exemplo do quero, pois já trabalho com PHP há anos mas nunca fiz algo do tipo, abraço
caro amigo...não é isso que quero....
eu preciso de um script que pegue todas as datas entre os períodos informados e depois consulte no banco de dados...
Mais o between faz exatamente isso, faz uma pesquisa no intervalo de data informado. No exemplo do erison a consulta será no intervalo de '2012-12-01' and '2012-12-31', passando por todos os dias existentes entre essas datas.
Novamente eu peço a vocês caros colegas que leiam o post antes, pois não é o Between and, ele só é necessário na segunda parte do código...
quero um script que faça isso aqui:
dataInformada_inicial='01/01/2013' // vem do input POST
dataInformada_final='07/01/2013' // // vem do input POST
retorna:
01/01/2013 // inicial
02/01/2013
03/01/2013
04/01/2013
05/01/2013
06/01/2013
07/01/2013 // final
entenderam agora? between só uso depois de pegar essas benditas datas conforme o exemplo acima...
Estranho o seu pedido, já que as informações que já passaram nas respotas deveria suprir sua requisição.
Mais se eu entendi bem, você quer antes gerar todas as datas, pelo php, para depois consultar o banco cada uma delas?
Realmente é isso?
Se for, eu acredito que haja algum tipo de erro na sua lógica... Já quer seria MUITO mais rápido e eficiente buscar os dados do período selecionado do banco, e após isso gerar as datas pelo PHP se deseja mostrar todas as datas, preenchendo as que retornarem dados do banco.
Repense sua lógica antes de até mesmo criticar os que tentam te ajudar.
caro Kamusz eu sei bem o que quero e a lógica é clara e necessária, é importante esse tipo de lógica para gerar relatório que eu quero, mas resposta que é bom nada não e amigo?...
de maneira alguma eu critiquei ninguém, apenas solicitei que dessem uma lida antes de postar alguma resposta
mais uma dica:
quero um script que faça isso aqui:
dataInformada_inicial='01/01/2013' // vem do input POST
dataInformada_final='07/01/2013' // // vem do input POST
retorna:
01/01/2013 // inicial
02/01/2013
03/01/2013
04/01/2013
05/01/2013
06/01/2013
07/01/2013 // final
exemplo: se(05/01/2013 não tiver movimentos) retorna "0 (zerado=R$0,00)"como valor para a data...
relatório precisa ser dessa maneira pois é baseado em um sistema financeiro bastante conhecimento...
$data1 = '01/01/2013';
$data2 = '07/02/2013';
list($d1_dia, $d1_mes, $d1_ano) = explode('/', $data1);
list($d2_dia, $d2_mes, $d2_ano) = explode('/', $data2);
$mktime1 = mktime(0,0,0,$d1_mes, $d1_dia, $d1_ano);
$mktime2 = mktime(0,0,0,$d2_mes, $d2_dia, $d2_ano);
$i=0;
while(true) {
$mktime3 = mktime(0,0,0,$d1_mes, $d1_dia+$i, $d1_ano);
$nData = date('d/m/Y', $mktime3);
echo $nData.'<br>';
if ($mktime3 == $mktime2) break;
$i++;
}
Boa sorte ai... Ainda acho que deve haver uma lógica mais sensata e você pode não estar enxergando ela...
vou dar uma olhada aqui
lembrando que eu posso colocar tb datas passadas..
ex.:
05/06/2012 inicial
25/09/2012 final
uma ajuda para você, para poder listar o do mês.
mas caso queira lista de vários meses, ai tem que ser uma condição um pouco mais complexa.
bem esta ai uma ajuda.
$dt_ini = '08/01/2013';
$dt_fim = '21/01/2013';
list($di,$m,$a) = explode('/',$dt_ini);
list($df,$m,$a) = explode('/',$dt_fim);
$listdt = null;
for($d=$di;$d<=$df;$d++):
switch(strlen($d)):
case 1:$d = '0'.$d;
endswitch;
$listdt .= $d.'/'.$m.'/'.$a.'<br />';
endfor;
echo $listdt;