tony_lu 1 Denunciar post Postado Outubro 30, 2015 Ola galera, preciso listar na tela datas de um período inicial e final, vamos supor o usuario seleciona a data inicial "2015-10-30" e final "2015-11-11" e na tela será exibido assim: 2015-10-30 2015-10-312015-11-012015-11-022015-11-032015-11-042015-11-052015-11-062015-11-072015-11-082015-11-092015-11-102015-11-11 Sem banco de dados nem nada... tentei assim, no meu server local funcionou porém no servidor de hospedagem dá um erro, segue: //Star date $dateStart = '30/10/2015'; $dateStart = implode('-', array_reverse(explode('/', substr($dateStart, 0, 10)))).substr($dateStart, 10); $dateStart = new DateTime($dateStart); //End date $dateEnd = '11/11/2015'; $dateEnd = implode('-', array_reverse(explode('/', substr($dateEnd, 0, 10)))).substr($dateEnd, 10); $dateEnd = new DateTime($dateEnd); //Prints days according to the interval $dateRange = array(); $i = 0; // Contador while($dateStart <= $dateEnd){ $dateRange[] = $dateStart->format('Y-m-d'); $dateStart = $dateStart->modify('+1day'); echo $dateRange[$i]; echo "<br>"; $i += 1; } O erro que dá: Fatal error: Call to a member function format() on a non-object in /home/achefacil/public_html/calendario.php on line 35 Esta linha se refere a: $dateRange[] = $dateStart->format('Y-m-d'); Alguem sabe porque esta dando este erro? Tem alguma forma mais facil de fazer? Obrigado! Compartilhar este post Link para o post Compartilhar em outros sites
Maykel-ctba 233 Denunciar post Postado Outubro 30, 2015 Veja a versão do seu PHP. Compartilhar este post Link para o post Compartilhar em outros sites
tony_lu 1 Denunciar post Postado Outubro 30, 2015 Independente da versão, eu precisava fazer esta rotina funcionar... Compartilhar este post Link para o post Compartilhar em outros sites
tony_lu 1 Denunciar post Postado Outubro 30, 2015 Opa ja consegui, segue para deixar documentado para ajudar quem um dia precisar: <?php $dini = mktime(0,0,0,$mes_ini,$dia_ini,$ano_ini); // timestamp da data inicial $dfim = mktime(0,0,0,$mes_fim,$dia_fim,$ano_fim); // timestamp da data final while($dini <= $dfim)//enquanto uma data for inferior a outra { $dt = date("d/m/Y",$dini);//convertendo a data no formato dia/mes/ano echo $dt."<br>"; //exibindo a data $dini += 86400; // adicionando mais 1 dia (em segundos) na data inicial } ?> Obrigado! Compartilhar este post Link para o post Compartilhar em outros sites
Maykel-ctba 233 Denunciar post Postado Outubro 30, 2015 Não é independente da versão... A função DateTime->format só funciona a partir do PHP 5.3.28 se não me falha a memória. Pode ser que seu localhost tenha esse recurso e seu server de produção não. ;) Compartilhar este post Link para o post Compartilhar em outros sites