Ir para conteúdo
leonardorocha

Problemas no intervalo de datas

Recommended Posts

Prezados, boa tarde!

 

Tenho uma apresentação que imprime determinados valores de acordo com a data cadastrada no sistema.

 

O código abaixo está funcionando para algumas datas e outras não. Um exemplo é o intervalo de datas 01/03/2019 a 30/06/2019

 

Este nunca é executado conforme o código abaixo. Se alguém souber aonde encontra-se o erro por favor me informe.

            <div class="row justify-content-md-center">            
                <?php 
                foreach ($model->getItems() as $calendar)
                    {
                        $dataI = date("d/m/Y", strtotime($calendar->start_date));
                        $dataF = date("d/m/Y", strtotime($calendar->end_date));
                        $titulo = $calendar->title;
                     ?>
                    <div class="col-md-3 col-sm-6">
                        <div class="item-calendario">
                            <div itemprop="event" itemscope itemtype="http://schema.org/Event">
                                <?php
                                    
                                    $atual = strtotime(date("d/m/Y"));
                                    $periodo = array('inicio' => strtotime($dataI), 'fim' => strtotime($dataF)); 

                                    if($atual >= $periodo['inicio'] && $atual <= $periodo['fim'] ){
                                        echo '<div class="icone-calendario"><i class="fa fa-clock-o fa-lg" aria-hidden="true" style="color:#0661ab"></i></div>
                                        <div class="status-calendario agora"><span>AGORA</span></div>';
                                    }
                                    if($atual < $periodo['inicio'] && $atual < $periodo['fim'] ){
                                        echo '<div class="status-calendario"><span>EM BREVE</span></div>';
                                    }                                 
                                ?>       
                                <div class="periodo-calendario" itemprop="startDate" content="{{startDateIso}}">
                                    <span><?php echo $dataI . ' a ' . $dataF ?></span>
                                </div>
                                <div class="texto-calendario">
                                    <a href="<?php echo $calendar->url; ?>" itemprop="url">
                                        <span itemprop="name"><?php echo $titulo; ?></span>
                                    </a>
                                </div>
                            </div>
                        </div>
                    </div>
                <?php } ?>
            </div>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por alessandra.barreto
      Boa Tarde
      Estou fazendo uma importacao de dados do SQL pro Oracle.
      Tenho campos (datetime2(7)) no SQL e Date no Oracle.
      Não consigo fazer a importação, o Oracle retorna erro de  [Microsoft][ODBC Oracle Wire Protocol driver]Timestamp parameters with a scale, must have a scale less than ten and a precision equal to 20 plus the scale.  You specified a precision of 0 and scale of 6. ". Alguém pode me ajudar?

       
    • Por Wanderson Moreira
      Boa tarde
      Alguém poderia me ajudar com uma situação?
       
      Estou tentado comparar datas para me retornar 3 situações: Vencendo, Vencido, e Ativo
      porem acredito que o formato delas estejam erradas, pois ao compará-las o valor retorna errado
       
      $data = date_create("30-07-2020"); $vencimento = date_format($data, "d-m-Y"); $dataHoje = date("d-m-Y"); $dataVencer = date('d-m-Y', strtotime('+15 days')); if($vencimento > $dataVencer){echo 'Ativo';}  
      no exemplo estou comparando se 30-07-2020 for maior > 07-08-2020 exibir o texto "Ativo"
      Porem 30-07-2020 não é maior do que 07-08-2020 e mesmo assim o valor retornado esta sendo "ativo"
       
       
       

       
       
    • Por lucianfpaula
      Olá, saudações a todos, eu tenho a seguinte duvida: preciso identificar se a data do dia esta dentro de um intervalo de datas, nos temos o seguinte sql
      "SELECT * FROM tb_cadastro WHERE datCadastro BETWEEN '2010/09/10' AND '2011/10/10'".
      O que preciso é saber se a data do dia este nesse intervalo. Tipo
      Data 01 = 01/02/2020
      Data 02 = 10/02/2020
      Data 03 = 05/02/2020
      se Data 03 estiver no intervalo de Data 01 e Data 02 faça algo se não faça nada
    • Por Viniciusr9
      Boa tarde pessoal,
      basicamente eu preciso do retorno de horas entre duas datas, porém tenho condições a tratar .
      basicamente tenho 2 colunas ( dt_fim e dt_ini ) que representam data final e data inicial. Preciso da diferença entre as duas retornada em uma outra coluna (hr_ausencias) , porém a cada dia posso computar no máximo 9 horas, e desconsiderar finais de semana e feriados( esses cadastrados em uma tabela) . Seria melhor tratar isso com uma Trigger , um Script PL/SQL , como me sugerem? Agradeço quem puder ajudar.
    • Por marcosberaldo
      Boa noite.
       
      Estou criando um ranking de pontuação e preciso colocar uma paginação nesse ranking mas não posso fazer a paginação pelo select, pois a select tem que somar os pontos de cada jogador informados em cada registro no banco, se eu limito a select ele só vai somar os pontos dos registros da página e não todos os pontos do jogador.
       
      Dessa forma optei por fazer a select normalmente e criar um array onde eu pretendo exibir somente parte dos dados.
       
      Em resumo, consegui fazer da seguinte forma:
      $dados = mysqli_query($conn, "SELECT *, sum(Pontos) as TotalPontos, sum(Acerto_Exato) as Acertos FROM placares INNER JOIN jogadores ON placares.JogadorID = jogadores.id WHERE campeonato='$campeonato' GROUP BY JogadorID ORDER BY TotalPontos DESC, Acertos DESC "); for($a = 0; $a < 9; $a++ ) { $row = mysqli_fetch_array($dados); echo $row['JogadorID']. " - " .$row['nome']; } Esse código me retorna 10 registros do array, até ai tudo bem, mas eu gostaria de exibir apenas um intervalo, por exemplo do registro 5 ao 9. 
      Tentei da seguinte forma:
      $dados = mysqli_query($conn, "SELECT *, sum(Pontos) as TotalPontos, sum(Acerto_Exato) as Acertos FROM placares INNER JOIN jogadores ON placares.JogadorID = jogadores.id WHERE campeonato='$campeonato' GROUP BY JogadorID ORDER BY TotalPontos DESC, Acertos DESC "); for($a = 5; $a < 9; $a++ ) { $row = mysqli_fetch_array($dados); echo $row['JogadorID']. " - " .$row['nome']; } Dessa forma ele me mostra apenas 5 registros, mas ele sempre me mostra os 5 primeiros e eu preciso carregar os últimos 5.
       
      Como faço???
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.