View div according to day and time

Asked

Viewed 90 times

3

I’m setting up a system (kind of emergency) for the church, for live broadcasting, because of social isolation. On the page where I am incorporating live, on the church website, I want that if the person enters within the official day and time of worship, and the video does not start, appear to him a div with a "click here" to re-start the page.

If it’s other days and times, where it’s not live, let another div, with a "click here" to go to the recorded cults page.

So, in short, when the person enters, php will take day and time, and check with the days and times of the variables. If you hit one, the div 1, If it doesn’t hit, the div 2.

The idea I have, but I want to run while I can barely crawl, then it became difficult. Here’s the code I thought, but it didn’t work:

<?php
$dataatual = ('w');
$horaatual = ('H:i:s');
$horade    = '19:59:59';
$horaate   = '21:00:01';
$horade1   = '08:59:59';
$horaate1  = '10:00:01';
$horade2   = '19:29:59';
$domingo   = '0';
$quarta    = '3';
$quinta    = '4';

if (($dataatual = $domingo and ($horaatual >= $horade1 and $horaatual <= $horaate1))) or (($dataatual = $domingo and ($horaatual >= $horade2 and $horaatual <= $horaate))) or (($dataatual = $quarta and $horaatual >= $horade and $horaatual <= $horaate))) or (($dataatual = $quinta and $horaatual >= $horade and $horaatual <= $horaate))) { ?>
<div class="conteudo">

<h3>Olá, estamos ao vivo. Caso não esteja visualizando o vídeo, Clique <a href="https://www.ibnagv.com.br/cultos-ao-vivo/">AQUI </a>para atualizar sua página.</h3>
  </div><?php } ?>

else { ?>

<div class="conteudo1">
<h3>Olá, no momento não estamos ao vivo. Mas você pode assistir nossos cultos gravados, clicando <a href="https://www.ibnagv.com.br/cultos-gravados/">AQUI </a>ou acessando o Menu Mídias / Cultos Gravados. Obrigado. </h3></div>

<?php } ?>

2 answers

0

There were two problems, the first was in the variables of $current date and $current time that were without the date function, the second was in the IF that was being closed before the other conditions, causing a syntax error.

I tweaked the code and it went like this:

$dataatual = date('w');
$horaatual = date('H:i:s');
$horade    = '19:59:59';
$horaate   = '21:00:01';
$horade1   = '08:59:59';
$horaate1  = '10:00:01';
$horade2   = '19:29:59';

$domingo   = '0';
$quarta    = '3';
$quinta    = '4';

if (($dataatual = $domingo and ($horaatual >= $horade1 and $horaatual <= $horaate1))
or (($dataatual = $domingo and ($horaatual >= $horade2 and $horaatual <= $horaate)))
or (($dataatual = $quarta and $horaatual >= $horade and $horaatual <= $horaate))
or (($dataatual = $quinta and $horaatual >= $horade and $horaatual <= $horaate))){ 
 echo '<div class="conteudo">
<h3>Olá, estamos ao vivo. Caso não esteja visualizando o vídeo, Clique 
<a href="https://www.ibnagv.com.br/cultos-ao-vivo/">AQUI </a>para atualizar sua página.</h3></div>'; 
} else { 
echo '<div class="conteudo1"> <h3>Olá, no momento não estamos ao vivo. Mas você pode assistir nossos cultos gravados, clicando <a href="https://www.ibnagv.com.br/cultos-gravados/">AQUI </a>ou acessando o Menu Mídias / Cultos Gravados. Obrigado. </h3></div>';

}

  • 1

    It worked perfectly. Thank you very much!

  • if I can mark the answer as correct I would be grateful :)

0

I made some changes, I hope I’ve been useful in some way, at least it makes you a few more comfortable, to edit the code in the future.

test in phpfiddle

<?php

date_default_timezone_set('America/Sao_Paulo');

$dataatual  =   date('w');      ##PEGA O DIA ATUAL PARA VERIFICAÇÃO;
$horaatual  =   date('H:i:s');  ##PEGA A HORA ATUAL PARA VERIFICAÇÃO;

##CRIA UMA LISTAGEM DE TODOS OS DIAS E TODOS OS HORÁRIOS DE CADA DIA;
$diasON =   array(
    '0'   =>  array(
                        ['inicio' => '08:59:59', 'fim' => '10:00:01'],
                        ['inicio' => '19:29:59', 'fim' => '21:00:01'],
                    ),
    '3'    =>  array(
                        ['inicio' => '19:59:59', 'fim' => '21:00:01'],
                    ),
    '4'    =>  array(
                        ['inicio' => '19:59:59', 'fim' => '21:00:01'],
                    )
);

?>

<html>
<head>
<!-- SCRIPTS/CSS -->
<link href="https://getbootstrap.com/docs/4.0/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container">
    <div class="jumbotron mt-3">
        <?php
        ##VERIFICA O DIA ATUAL SE EXISTE TRANSMISSÃO AO VIVO;
        if(isset($diasON[$dataatual])) {

            foreach($diasON[$dataatual] as $horarios) {
                if($horaatual >= $horarios['inicio'] AND $horaatual <= $horarios['fim']) {
                    ##VERIFICA SE JÁ ESTÁ TRANSMITINDO;
                    echo    '<div class="alert alert-info" role="alert">
                                <h2>Estamos [Ao Vivo]. Clique <a href="https://www.ibnagv.com.br/cultos-ao-vivo/">AQUI </a>para abrir o vídeo.</h2>
                            </div>';

                } elseif($horaatual <= $horarios['inicio']) {
                    ##AVISA O HORÁRIO QUE VAI COMEÇAR;
                    echo    '<div class="alert alert-success" role="alert">
                                <h2>Próximo culto ao vivo: <b>' . $horarios['inicio'] . '</b> até <b>' . $horarios['fim'] . '</b></h2>
                            </div>';

                } elseif($horaatual >= $horarios['fim']) {
                    ##AVISA QUE JA ENCERROU A TRANSMISSÃO;
                    echo    '<div class="alert alert-danger" role="alert">
                                <h2>A transmissão de <b>' . $horarios['inicio'] . '</b> foi encerrada: <b>' . $horarios['fim'] . '</b></h2>
                            </div>';
                } 
            }

        } else {
            echo '<h4>Olá, hoje não teremos programação ao vivo. Mas você pode assistir nossos cultos gravados, clicando <a href="https://www.ibnagv.com.br/cultos-gravados/">AQUI </a>ou acessando o Menu Mídias / Cultos Gravados. Obrigado. </h4>';
        }
        ?>        
    </div>
</div>
</body>
</htm>

Browser other questions tagged

You are not signed in. Login or sign up in order to post.