Amigos, Estou com um problema em uma aplicação onde recebo duas datas e retorno os dias entre essas datas. Por exemplo: Se passar as datas 01/05/2007 e 20/08/2007 será retornado todos os dias entre essas datas no padrão d/mm/aaaa. Até aí tudo bem, o código abaixo funciona perfeitamente. O problema é que se no período passado contiver as datas 05/11/2007, 03/11/2008, 01/11/2009, 07/11/2010, 07/11/2011, 05/11/2012 (em cada ano existe um dia do mês de novembro), o período retornado compreendi a data inicial e data final menos um dia. Segue código: //Monta lista com os valores de dia, mes e ano das variaveis passadas por post list ($dia1, $mes1, $ano1) = split ('[/.-]', $p_dt_inicio); list ($dia2, $mes2, $ano2) = split ('[/.-]', $p_dt_fim); //Monta timestamp da data inicial $inicio=mktime(0, 0, 0, $mes1,$dia1,$ano1); //Monta timestamp da data final $fim=mktime(0, 0, 0, $mes2,$dia2,$ano2); //Faz um loop com todos os dias dentro do intervalo passado for($x=$inicio;$x<=$fim;$x=strtotime("+1 day", $x)){ echo " Data: " . date("d/m/Y", $x) . "<br>"; } Espero que alguém consiga me ajudar, pois já fiz vários testes sem sucesso. Identifiquei que no loop, o cálculo do strtotime está correto, mesmo nas datas que me trazem problema, porém o $x nõ recebe o valor da data final passada.