Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde pessoal,
Tenho um sistema de newsletter com três campos, sendo eles: nome(VARCHAR), data de nascimento(DATE) e e-mai(VARCHAR)l.
Nesta newsletters, preciso fazer um filtro para enviar e-mail somente para os cadastrados que fizerem aniversário na semana atual.
Pesquisando pela internet, um amigo deu a seguinte sugestão. Utilizar a função data para pegar a data atual e criar duas váriaveis com dia da semana inicial e dia da semana final, desta forma o código ficaria assim:
$dia_semana_hoje = date('w'); // pegando qual o dia da semana em que estamos
$segunda_dessa_semana = date('Y-m-d',time()-( $dia_semana_hoje) * 24*60*60);
$domingo_dessa_semana = date('Y-m-d', time()- (6-$dia_semana_hoje)*24*60*60 );
e depois no select usar o between:
SELECT.... WHERE campo_data BETWEEN '$segunda_dessa_semana' AND '$domingo_dessa_semana';
Bom tentei fazer isso e não consegui, aí pensei pensei e fiz uma pequena alteração na linha de comando:
$domingo_dessa_semana = date('Y-m-d', time()- (6-$dia_semana_hoje)2460*60 );
onde eu apenas inverti a posição do '-6', ficando assim:
$domingo_dessa_semana = date('Y-m-d', time()- ($dia_semana_hoje-6)2460*60 );
Depois disso, o sistema até que funcionou, mas não 100%. Acontece que ele consegue fazer o filtro dos aniversariantes daquele semana, mas somente se o ano preenchido for 2008, sendo que em anos anteriores não funciona!
Alguém tem alguma sugestão ou uma outra maneira de fazer este filtro...
Vlww.
Carregando comentários...