Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Galera uma duvida bem bobona..
Para pegar o dia da semana eu sei que é utilizando a função por exemplo:
date("w");
Porem como faço para recuperar uma data conforme o dia da semana?
O que eu preciso é gerar um relatório da semana, porem eu preciso ter a data de segunda ate sexta-feira, pensei em criar um while de 1 ate 5 (seg----) e recuperaria a data que estaria na semana e assim ter o meu valor do dia..
Alguém precisou de algo que pode da uma ajuda??
obrigado!!!
function DataLiberacao($xDataInicial,$xSomarDias){
for($ii=1; $ii<=$xSomarDias; $ii++){
$xDataInicial=Soma1dia($xDataInicial); // Soma dia normal
// Verifica se é dia útil
if(date("w", dataToTimestamp($xDataInicial))=="0"){
// Se for domingo ou feriado , soma 01
$xDataInicial=Soma1dia($xDataInicial);
}else if(date("w", dataToTimestamp($xDataInicial))=="6"){
// Se for sábado soma 02
$xDataInicial=Soma1dia($xDataInicial);
$xDataInicial=Soma1dia($xDataInicial);
}else{
// Verifica se é feriado
for($i=0; $i<=12; $i++){
if($xDataInicial==Feriados(date("Y"),$i)){
$xDataInicial=Soma1dia($xDataInicial);
}
}
}
}
// Retorna a data
return $xDataInicial;
}Use a biblioteca date/time com formatos relativos:
$start = new DateTime('monday this week');//2016-09-12 00:00:00
$end = new DateTime('friday this week');//2016-09-16 00:00:00
Date/Time pode utilizar comparação strict:
$now = new DateTime();
if ($now >= $start && $now <= $end)
{
}
Entretanto, para a sexta feira, deve lembrar que ela calcula apenas até o horário zero (2016-09-16 00:00:00). Entretanto, a sexta vai até as 23:59:59.
Essa situação pode ser tratada de duas formas, calculando até sábado e usando apenas < ao invés de <=:
$start = new DateTime('monday this week');//2016-09-12 00:00:00
$end = new DateTime('saturday this week');//2016-09-17 00:00:00
$now = new DateTime();
//apenas < irá contar até 2016-09-16 23:59:59
if ($now >= $start && $now < $end)
{
}
Ou, adicionar o horário para a sexta:
$start = new DateTime('monday this week');//2016-09-12 00:00:00
$end = new DateTime('fridaythis week');//2016-09-16 00:00:00
$end->setTime(23 , 59 , 59);//2016-09-16 23:59:59
$now = new DateTime();
if ($now >= $start && $now <= $end)
{
}Opa agradeço ajuda de todos!!!
Olá espero ter ajudado
if(date("w", dataToTimestamp($xDataInicial))=="0"){
// Se for domingo ou feriado , soma 01