Ir para conteúdo

POWERED BY:

Arquivado

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

Tiago Sampaio

Trabalhando com data

Recommended Posts

Tenho que desenvolver um sistema em PHP que imprime um periodo de dias.Tem que imprimir do dia 26 de um teterminado mês ate o dia 25 do mes seguinte.Ex.: As datas que tiverem dentro deste periodo sera impresso da seguinte forma. 26/02/2007 - 25/03/2007 Quando este periodo acabar imprimir outro periodo. 26/03/2007 - 25/04/2007 e assim por diante. ( O script abaixo mostra o que estou falando ) Bem, o resultado que eu estou querendo imprimir já dei conta de fazer.Mas o problema é na virar do ano.em vez de imprimir: 26/12/2007 - 25/01/2008esta imprimindo: 26/12/2007 - 25/01/2007Não estou dando conta de fazer este virada.Gostaria de saber se alguem pode esta modificando o script abaixo para que na virar do ano possa esta sendo mudando na impresão.E se alguem tambem achar que este script pode ser melhorado, fique avontade para as modificaçoes.<?php $DIA_ATUAL = date("dmY"); $dia = 26; // DIA de Inicio $mes = date("m"); $ano = date("Y"); if ($mes == 1){ $mes_anterior=12;} else { $mes_anterior=$mes-1; } if ($DIA_ATUAL<"$dia$mes$ano") { $TOTAL_DIAS = cal_days_in_month(CAL_GREGORIAN, $mes_anterior, $ano); } else{ $TOTAL_DIAS = cal_days_in_month(CAL_GREGORIAN, $mes, $ano); } function nome_dia($nome_dia) { if($nome_dia>="$TOTAL_DIAS") { $nome_dia = $nome_dia-$TOTAL_DIAS; } return $nome_dia; } $i = "1"; while($i<="$TOTAL_DIAS") { if ($DIA_ATUAL<"$dia$mes$ano") { ${'dia0'.$i} = date("d-m",mktime(0,0,0,$mes-1,$dia+$i-1,$ano)); $DIA_FINAL = date("d-m",mktime(0,0,0,$mes-1,$dia+$i-1,$ano)); } else { ${'dia0'.$i} = date("d-m",mktime(0,0,0,$mes,$dia+$i-1,$ano)); $DIA_FINAL = date("d-m",mktime(0,0,0,$mes,$dia+$i-1,$ano)); } $i++; } $i = "1"; $DaTaIn = ${'dia0'.$i};echo $DaTaIn.'-'.$ano.'<br>';echo $DIA_FINAL.'-'.$ano;?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

você usa Mysql???se for qual formatação que você recupera esses dados? (A data)

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas no futuro você irar resgatar essas informações apartir de um BD ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não, isto só é um trabalho da Facu, soh tenho que imprimir na tela do periodo do dia 26 do mes atual ate 25 do mes seguinte e assim por diante.O script já esta funcionando, agora soh esta falando quando for no final do ano ele virar tbmex.: 26-12-2007 25-01-2008e nao 26-12-2007 25-01-2007

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tiago, seja bem-vindo ao fórum. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

O post para evidenciar o tópico foi excluído por ferir a 10ª regra do fórum. Peço que faça uma leitura para referência nas novas postagens.

 

Sobre a tua dúvida, dê uma olhada em mktime(), assim seus problemas com a virada do ano não ocorrerão.

Qualquer coisa, poste aí ;)

 

[]s

Anderson Mello

Compartilhar este post


Link para o post
Compartilhar em outros sites

acho que podia ser feito assim tbSELECT *, date_format(campo_data,'%d/%m/%Y - %H:%i') as data FROM tabela

Compartilhar este post


Link para o post
Compartilhar em outros sites

David Ramires ,ele nao esta utilizando BD flw...

Compartilhar este post


Link para o post
Compartilhar em outros sites

David ele quer pegar uma data atual, e outra data somando + 1 mês - 1 dia

 

exemplo com strtotime:

 

echo date("d-m-Y")."<br />";
echo date("d-m-Y" , strtotime("now -1 day +1 month"));

 

resultado:

 

02-03-2007

01-04-2007

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.