Ir para conteúdo

POWERED BY:

Arquivado

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

CrazyLOL

Dia da semana para data

Recommended Posts

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!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá espero ter ajudado

    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);
              }
           }
        }

Compartilhar este post


Link para o post
Compartilhar em outros sites


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;

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

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)
{
}

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.