Br3n0k 1 Denunciar post Postado Junho 17, 2015 Salve pessoal joia? tenho um sistema de agendamento de serviço para um responsável com data inicial e data final. o grande porem! bloquear para que não haja outro agendamento para quele funcionário no período que ele já estiver com outro serviço agendado. Dei uma olhada na net e achei isso aqui, acho que já é meio caminho andado: //Star date $dateStart = '20/04/2013'; $dateStart = implode('-', array_reverse(explode('/', substr($dateStart, 0, 10)))).substr($dateStart, 10); $dateStart = new DateTime($dateStart); //End date $dateEnd = '25/04/2013'; $dateEnd = implode('-', array_reverse(explode('/', substr($dateEnd, 0, 10)))).substr($dateEnd, 10); $dateEnd = new DateTime($dateEnd); //Prints days according to the interval $dateRange = array(); while($dateStart <= $dateEnd){ $dateRange[] = $dateStart->format('Y-m-d'); $dateStart = $dateStart->modify('+1day'); } var_dump($dateRange); joia ele lista em forma de array o intervalo entre as datas, agora me desculpem a ignorância, como utilizar este array para impedir de agendar um serviço dentro deste intervalo para o tal funcionário? Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Junho 17, 2015 Vc pode usar a função in_array. Na hora de cadastrar um novo, vc verifica com ela se o valor já não está no arrray. Na verdade, eu trabalharia isso tudo no banco de dados. Teria horários predefinidos: 9h, 9h30, 10h, 10h30, e uma simples consulta no banco me retornaria se "pode ou não" agendar. Creio que será bem mais simples. Vc pode "fixar horários" ? Compartilhar este post Link para o post Compartilhar em outros sites
Br3n0k 1 Denunciar post Postado Junho 17, 2015 O meu agendamento não envolve horários somente datas, de 00:00am da data inicial ate 23:59pm da data final, gostei da dica do in_array vou tentar Compartilhar este post Link para o post Compartilhar em outros sites
Br3n0k 1 Denunciar post Postado Julho 24, 2015 Certo, o in_array resolveu para mim fazer o bloqueio, agora no decorrer do projeto senti a necessidade de definir dentro de um pequeno calendario que dia deste serviço é com relação a hoje: ex: o serviço é entre o dia 23/07/2015 a 26/07/2015 como irei falar que hoje dia 24/07/2015 é o Segundo dia daquele serviço? pensei que talvez pudesse ser simples como por exemplo fazer um if if($dateRange == $hoje){ echo "hoje é o segundo dia"; } porem obvio que não deu certo, teria de ser algo assim pelo que entendi mais ou menos if($dateRange[1] == $hoje){ echo "hoje é o segundo dia"; } a alguma forma de fazer isso sem ter que colocar o numero do array? ou alguma forma de fazer isso que ainda não pensei? Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Julho 24, 2015 Comparar o timestamp e ver se é menor ou igual a hoje. Compartilhar este post Link para o post Compartilhar em outros sites