Ir para conteúdo

POWERED BY:

Arquivado

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

Br3n0k

Impedindo agendamento em determinadas datas do Array

Recommended Posts

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

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

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

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

Comparar o timestamp e ver se é menor ou igual a hoje.

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.