Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Salve galera, estou com uma dúvida em PHP, como fazer para imprimir um intervalo de datas no seguinte formato:
"Semana de 26/05/2014 à 30/05/2014"
Eu criei o seguinte código:
<?php
$w = date(w);
$d = date(d);
$m = date(m);
$y = date(Y);
if($w==1){
echo "Semana de $d/$m/$y à ";
echo "Hoje é Segunda feira!";
}elseif($w == 2){
$d = $d - 1;
echo "Semana de $d/$m/$y à ";
echo "Hoje é Terça feira!";
}elseif($w == 3){
$d = $d - 2;
echo "Semana de $d/$m/$y à ";
echo "Hoje é Quarta feira!";
}elseif($w == 4){
$d = $d - 3;
echo "Semana de $d/$m/$y à ";
echo "Hoje é Quinta feira!";
}elseif($w == 5){
$d = $d - 4;
echo "Semana de $d/$m/$y à ";
echo "Hoje é Sexta feira!";
}elseif($w == 6){
$d = $d - 5;
echo "Semana de $d/$m/$y à ";
echo "Hoje é Sabado!";
}elseif($w == 0){
$d = $d + $m;
echo "Semana de $d/$m/$y à ";
echo "Hoje é Domingo!";
}
?>
Por favor, não riam, :P
A ideia era pegar o dia corrente e de acordo com o dia da semana ir subtraindo, porem isso obviamente não funcionou, pois se a data corrente for menor do que 6 ele estraga a logica toda, hehehe...
No mais é isso, é só imprimir um intervalo de datas de uma semana expecifica, se alguem souber uma forma de fazer isso funcionar fico grato.
Partindo do principio de uma semana que começa na segunda e termina na sexta seria impresso da seguinte forma:
Semana de 26/05/2014 à 30/05/2014;
Semana que vem seria:
Semana de 01/06/2014 à 06/06/2014;
A nova semana começa no sabado, ou seja, neste sábado a data já estaria para a segunda opção (Semana de 01/06/2014 à 06/06/2014;).
Ok, mais no caso seria dia 02 no dia 01 correto ?
Me explique exatamente o que você quer que o seu sistema faça ? mostre os dias da semana atual ou da próxima ?
Da atual, por exemplo, esta semana ele iria imprimir a seguinte frase:
"Semana de 20/05/2014 à 30/05/2014"
Semana que vem ele imprimiria a seguinte frase:
"Semana de 02/06/2014 à 06/06/2014"
E assim sucessivamente, ele pegaria o dia da segunda feira e o dia da sexta feira e montaria a frase, no sabado e no domingo já contaria a proxima semana.
DateTime
$hoje = new DateTime();
$segunda = new DateTime('monday this week');
$sexta = new DateTime('friday this week');
printf('Semana de %s a %s. Hoje e %s',
$segunda->format('d/m/Y'),
$sexta->format('d/m/Y'),
$hoje->format('l') // nome do dia da semana em ingles
);
Cara, sem palavras, funcionou, era exatamente isso que era pra acontecer, obrigado!
No caso você quer imprimir os dias da semana ?
Exemplo:
Hoje é terça feira e essa semana vai do dia 26/05 a 30/05 ou você também quer o sábado e domingo ?