Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá Pessoas!!! Minha primeira vez como programador aqui e gostaria de saber se vocês conseguem simplificar este código. Funciona, mas quem sabe aperfeiçoamos.
A idéia é mostrar as datas desta semana de segunda até sexta-feira para a lista de presença de alunos que deve ser impressa toda segunda-feira, mas se for também impressa outro dia da semana vir com as informações desta semana.
Ex.:
31/08/2009
01/09/2009
02/09/2009
03/09/2009
04/09/2009
As datas acima é começando de segunda, dia 31/8 e 4/9 sexta-feira
<?php
$semana_hoje = date(w); //Guardando o dia da semana de hoje. Ex.: Se quinta = 4.
$para_segunda = ($semana_hoje - 1); //Guarando quantos dias passaram de segunda-feira até quinta-feira. Se quinta-feira, passaram 3 dias.
$para_sexta = (5 - $semana_hoje); //Guardando quantos dias faltam para chegar na sexta. Se quinta-feira, faltam 2 dias.
//Guadando os dias até segunda-feira
for($i=$para_segunda;$i>0;$i--){
$dias_atras[$i] = strftime("%d/%m/%Y", strtotime("-$i days")); // Hoje para chegar na segunda-feira atual
}
//Guardando os dias de hoje até sexta-feira
for($j=0;$j<=$para_sexta;$j++){
$dias_frente[$j] = strftime("%d/%m/%Y", strtotime("+$j days")); // Hoje para chegar na sexta-feira atual
}
//Guardando os dias anteriores a hoje na variável $datas
$cont = 0;
foreach($dias_atras as $da){
$datas[$cont] = $da;
$cont++;
}
//Guardando os dias de hoje e após até sexta-feira
foreach($dias_frente as $df){
$datas[$cont] = $df;
$cont++;
}
//Mostrando as datas de segunda até sexta desta semana
foreach($datas as $dt){
echo $dt."<br>";
/*
A saída é:
31/08/2009
01/09/2009
02/09/2009
03/09/2009
04/09/2009
*/
}
Comentem.
Carregando comentários...